導航:首頁 > 物理學科 > c語言物理地址如何分配給指針

c語言物理地址如何分配給指針

發布時間:2022-03-16 05:39:57

① C語言中如何給指針int (*p)[2]分配動態內存

malloc(sizeof(int(*)[2]));


例子:

#include"stdio.h"
#include"stdlib.h"
intmain()
{
int(*p)[2];
p=(int(*)[2])malloc(sizeof(int(*)[2]));
free(p);
}

② C語言怎麼動態分配給指針空間

1.
#include<stdio.h>
#include<stdlib.h>
void main()
{
float *p;
int i;
int M = 4;//我這里是直接賦的值,當然你也可以將M搞成用戶輸入值
p=(float *)malloc(M*sizeof(float));
p[0]=1.1;
p[1]=2.2;
p[2]=3;
p[3]=4;

for(i=0;i<M;i++)
printf("%f ",p[i]);
}

2.
#include<stdio.h>
#include<stdlib.h>
void main()
{
int **p;
int M=3,N=4;//我這里是直接賦的值,當然你也可以將M,N搞成用戶輸入值

p=(int **)malloc(sizeof(int *)*M);
p[0]=(int *)malloc(sizeof(int)*N);
p[1]=(int *)malloc(sizeof(int)*N);
p[2]=(int *)malloc(sizeof(int)*N);

p[0][0]=71;

printf("%d",p[0][0]);
}

③ 在C語言中如何把一個地址常量(地址值)賦給指針

int *p;
p=0x2A70;
我沒試 你試試

④ C語言如何給指針分配內存

1, 找到VS的cl.exe所在目錄,把這目錄復制下來:
我的VS2008的CL.EXE目錄是在E:\Program Files\Microsoft Visual Studio 9.0\VC\bin,
VS2010可以類似的找到..

在'我的電腦'上點右鍵,
選右鍵菜單'屬性'->'高級'->'環境變數',
在彈出的環境變數設置框里找"PATH"這個變數, (在用戶變數或系統變數里都可以)
然後在"PATH"的值後面,用分號分隔,
把將才找到的路徑串復制進去,選確定.

2, 重新運行CMD開啟新的命令窗.

3, 輸入cl回車檢查PATH路徑是否生效.

//以上步聚是設置環境變數,只需設一次以後就好用了.以後每次要命令行下編譯C++程序,就從下面第4步開始.

4, 輸入vcvars32 ,運行cl.exe同一路徑下的vcvars32.bat,設置其它環境變數.

5, 寫一個helloworld程序,保存成hello.cpp, cl hello.cpp回車試試編譯正常不. 如果成功,則生成hello.exe文件.

//-----------------------------------------------------------

C/C++ 編譯器選項

-優化-

/O1 最小化空間 /Op[-] 改善浮點數一致性
/O2 最大化速度 /Os 優選代碼空間
/Oa 假設沒有別名 /Ot 優選代碼速度
/Ob<n> 內聯展開(默認 n=0) /Ow 假設交叉函數別名
/Od 禁用優化(默認值) /Ox 最大化選項。(/Ogityb2 /Gs)
/Og 啟用全局優化 /Oy[-] 啟用框架指針省略
/Oi 啟用內部函數

-代碼生成-

/G3 為 80386 進行優化 /Gh 啟用 _penter 函數調用
/G4 為 80486 進行優化 /GH 啟用 _pexit 函數調用
/G5 為 Pentium 進行優化 /GR[-] 啟用 C++ RTTI
/G6 對 PPro、P-II、P-III 進行優化 /GX[-] 啟用 C++ EH (與 /EHsc 相同)
/G7 對 Pentium 4 或 Athlon 進行優化 /EHs 啟用 C++ EH (沒有 SEH 異常)
/GB 為混合模型進行優化(默認) /EHa 啟用 C++ EH(w/ SEH 異常)
/Gd __cdecl 調用約定 /EHc extern "C" 默認為 nothrow
/Gr __fastcall 調用約定 /GT 生成纖維安全 TLS 訪問
/Gz __stdcall 調用約定 /Gm[-] 啟用最小重新生成
/GA 為 Windows 應用程序進行優化 /GL[-] 啟用鏈接時代碼生成
/Gf 啟用字元串池 /QIfdiv[-] 啟用 Pentium FDIV 修復
/GF 啟用只讀字元串池 /QI0f[-] 啟用 Pentium 0x0f 修復
/Gy 分隔鏈接器函數 /QIfist[-] 使用 FIST 而不是 ftol()
/GZ 啟用堆棧檢查(/RTCs) /RTC1 啟用快速檢查(/RTCsu)
/Ge 對所有函數強制堆棧檢查 /RTCc 轉換為較小的類型檢查
/Gs[num] 控制堆棧檢查調用 /RTCs 堆棧幀運行時檢查
/GS 啟用安全檢查 /RTCu 未初始化的本地用法檢查
/clr[:noAssembly] 為公共語言運行庫編譯
noAssembly - 不產生程序集
/arch:<SSE|SSE2> CPU 結構的最低要求,以下內容之一:
SSE - 啟用支持 SSE 的 CPU 可用的指令
SSE2 - 啟用支持 SSE2 的 CPU 可用的指令

-輸出文件-

/Fa[file] 命名程序集列表文件 /Fo<file> 命名對象文件
/FA[sc] 配置程序集列表 /Fp<file> 命名預編譯頭文件
/Fd[file] 命名 .PDB 文件 /Fr[file] 命名源瀏覽器文件
/Fe<file> 命名可執行文件 /FR[file] 命名擴展 .SBR 文件
/Fm[file] 命名映射文件

-預處理器-

/AI<dir> 添加到程序集搜索路徑 /Fx 將插入的代碼合並到文件
/FU<file> 強制使用程序集/模塊 /FI<file> 命名強制包含文件
/C 不抽出注釋 /U<name> 移除預定義宏
/D<name><text> 定義宏 /u 移除所有預定義宏
/E 預處理到 stdout /I<dir> 添加到包含搜索路徑
/EP 預處理到 stdout,沒有 #line /X 忽略「標准位置」
/P 預處理到文件

-語言-

/Zi 啟用調試信息 /Ze 啟用擴展(默認)
/ZI 啟用「編輯並繼續」調試信息 /Zl 省略 .OBJ 中的默認庫名
/Z7 啟用舊式調試信息 /Zg 生成函數原型
/Zd 僅有行號調試信息 /Zs 只進行語法檢查
/Zp[n] 在 n 位元組邊界上包裝結構 /vd 禁用/啟用 vtordisp
/Za 禁用擴展(暗指 /Op) /vm<x> 指向成員的指針類型
/Zc:arg1[,arg2] C++ 語言一致性,這里的參數可以是:
forScope - 對范圍規則強制使用標准 C++
wchar_t - wchar_t 是本機類型,不是 typedef

- 雜項 -

@<file> 選項響應文件 /wo<n> 發出一次警告 n
/?, /help 列印此幫助消息 /w<l><n> 為 n 設置警告等級 1-4
/c 只編譯,不鏈接 /W<n> 設置警告等級(默認 n=1)
/H<num> 最大外部名稱長度 /Wall 啟用所有警告
/J 默認 char 類型是 unsigned /Wp64 啟用 64 位埠定位警告
/nologo 取消顯示版權消息 /WX 將警告視為錯誤
/showIncludes 顯示包含文件名 /WL 啟用單行診斷
/Tc<source file> 將文件編譯為 .c /Yc[file] 創建 .PCH 文件
/Tp<source file> 將文件編譯為 .cpp /Yd 將調試信息放在每個 .OBJ 中
/TC 將所有文件編譯為 .c /Yl[sym] 為調試庫插入 .PCH 引用
/TP 將所有文件編譯為 .cpp /Yu[file] 使用 .PCH 文件
/V<string> 設置版本字元串 /YX[file] 自動 .PCH
/w 禁用所有警告 /Y- 禁用所有 PCH 選項
/wd<n> 禁用警告 n /Zm<n> 最大內存分配(默認為 %)
/we<n> 將警告 n 視為錯誤

-鏈接-

/MD 與 MSVCRT.LIB 鏈接 /MDd 與 MSVCRTD.LIB 調試庫鏈接
/ML 與 LIBC.LIB 鏈接 /MLd 與 LIBCD.LIB 調試庫鏈接
/MT 與 LIBCMT.LIB 鏈接 /MTd 與 LIBCMTD.LIB 調試庫鏈接
/LD 創建 .DLL /F<num> 設置堆棧大小
/LDd 創建 .DLL 調試庫 /link [鏈接器選項和庫]

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

⑤ C語言指針問題 如何用地址代碼直接給指針變數賦值

p
=
(int
*)1244992;
這樣就可以賦值了,不過你的程序可能會出錯的!
不應該直接使用地址。

⑥ c語言中,可以將一個地址賦給一個指針變數嗎

真實的鏈表首指針每次運行都不一樣,保存下來也不能用。你不妨把creat()的完整調用也發出來看看有沒有其它的解決方案。

⑦ [C語言]如何將地址賦值給指針

int*p;
p=(int*)0x123456;

使用的前提是你確定這個內存確實可以使用,不然對該地址的內容進行操作時,
會出現引用非法指針的錯誤,導致程序崩潰。

⑧ C語言中,給指針賦值或者賦予地址的幾個寫法的辨析

*p=&r;//*p是double類型,&r是double*類型,二者不匹配,錯的
*p=r;//*p是double類型,r是double類型,二者匹配,對的
p=r;//p是double*類型,r是double類型,二者不匹配,錯的
p=&r;//p是double*類型,&r是double*類型,二者匹配,對的

1 2 3 ''

4 5 6 ''

7 8 ''

⑨ C語言中幾個字元串指針如何分配內存地址

在C語言中,可以用字元數組或字元串指針兩種方法存儲幾個字元串,分配呢?很多教科書中未提到,下面舉例來討論。 例1.用字元數組實現 main()strl一 {statie ehar strl[〕~即ehina即; inta~1, statie ehar strZ[]~,student開; fioatb~1.5, statie ehar。trl);/一列印stri地址的字元數組內容,/ Printf(,%lu即,strZ), printf(,寫s\n即,strZ), Printf(即寫lu即,str3); Printf(階%s\n即,str3),str3一 printf(,阮=魷lua=%d」,腸,a),/一列印a的地址與a值一/ Printf(」乙b=%lub~%f,,肺,b),/,列印b的地址與b值./那麼這幾宇符串的內存地址是如何C .ha\0t u d ent\0 bo\0 }

⑩ C語言中,怎麼使用malloc函數為數組指針分配空間 比如要為char *p[ ]分配空間,應該怎麼弄

指針數組和數組指針是兩個不同概念,你這里給出的定義實例實際上是指針數組的定義。
指針數組是指所定義數組的每個數組元素都是一個相應數據類型的指針,開設空間的操作可以應用循環語句進行,例如:對於char *p[10]; 可以應用
for(i=0;i<10;i++)
p[i]=(char *)malloc(sizeof(char)*N); //為每個指針申請開設N字元的存儲空間
開設後,對於p的使用與二維數組的使用格式類似,可以有效的使用兩個下標,
如 p[0][0]='A';
還可以像每個指針中賦值字元串: p[2]="Beijing"; 當然字元串長度應該小於N。

而數組指針,是指定義為指向某個固定大小順序空間的指針,定義的格式如下:
char (*pa)[10]; //定義一個指向擁有10元素的字元數組的指針,
int (*p)[10];
應用格式可以參考下述程序,申請空間、賦值、輸出後,可以觀察到100被賦值到第五行第十個元素,指針可以像二維數組一樣通過兩個下標引用所申請開設的空間。
#include<alloc.h>
main()
{ int (*p)[10];
int i,j,k;
p=(int(*)[10])malloc(sizeof(int(*)[10])*5); //申請開設5個單元,每個單元擁有10個連續空間
p[4][9]=100;
for(i=0;i<5;i++)
{ for(k=0;k<10;k++)
printf("%8d",p[i][k]);
printf("\n");
}
}

閱讀全文

與c語言物理地址如何分配給指針相關的資料

熱點內容
word中化學式的數字怎麼打出來 瀏覽:705
乙酸乙酯化學式怎麼算 瀏覽:1372
沈陽初中的數學是什麼版本的 瀏覽:1318
華為手機家人共享如何查看地理位置 瀏覽:1010
一氧化碳還原氧化鋁化學方程式怎麼配平 瀏覽:848
數學c什麼意思是什麼意思是什麼 瀏覽:1370
中考初中地理如何補 瀏覽:1260
360瀏覽器歷史在哪裡下載迅雷下載 瀏覽:671
數學奧數卡怎麼辦 瀏覽:1351
如何回答地理是什麼 瀏覽:989
win7如何刪除電腦文件瀏覽歷史 瀏覽:1023
大學物理實驗干什麼用的到 瀏覽:1449
二年級上冊數學框框怎麼填 瀏覽:1659
西安瑞禧生物科技有限公司怎麼樣 瀏覽:834
武大的分析化學怎麼樣 瀏覽:1213
ige電化學發光偏高怎麼辦 瀏覽:1301
學而思初中英語和語文怎麼樣 瀏覽:1608
下列哪個水飛薊素化學結構 瀏覽:1388
化學理學哪些專業好 瀏覽:1453
數學中的棱的意思是什麼 瀏覽:1017