對于指針變量的使用要特別注意。上例中兩個指針在說明前沒有初始化, 因此
這兩指針為隨機(jī)地址, 在小存儲模式下使用將會有破壞機(jī)器的危險。正確的使用辦
法如下:
例如:
main()
{
int *i;
char *str;
i=(int*)malloc(sizeof(int));
i=420;
str=(char*)malloc(20);
str="Good, Answer!";
.
.
.
}
上例中, 函數(shù)(int*)malloc(sizeof(int))表示分配連續(xù)的sizeof(int)=2個字
節(jié)的整型數(shù)存儲空間并返回其首地址。同樣(char*)malloc(20)表示分配連續(xù)20 個
字節(jié)的字符存儲空間并返回首地址(有關(guān)該函數(shù)以后再詳述)。由動態(tài)內(nèi)存分配函數(shù)
malloc()分配了內(nèi)存空間后, 這部分內(nèi)存將專供指針變量使用。
如果要使i指向三個整型數(shù), 則用下述方法。
例如:
#include
main()
{
int *a;
a=(int*)malloc(3*sizeof(int));
*a=1234;
*(a+1)=4567;
*(a+2)=234;
.
.
.
}
*i=1234表示把1234存放到i指向的地址中去, 但對于*(i+1)=4567, 如果認(rèn)為
將4567存放到i指向的下一個字節(jié)中就錯了。Turbo C2.0中只要說明i為整型指針,
則 (i+1) 等價于 i+1*sizeof(int)
同樣 (i+2) 等價于 i+2*sizeof(int)
這兩指針為隨機(jī)地址, 在小存儲模式下使用將會有破壞機(jī)器的危險。正確的使用辦
法如下:
例如:
main()
{
int *i;
char *str;
i=(int*)malloc(sizeof(int));
i=420;
str=(char*)malloc(20);
str="Good, Answer!";
.
.
.
}
上例中, 函數(shù)(int*)malloc(sizeof(int))表示分配連續(xù)的sizeof(int)=2個字
節(jié)的整型數(shù)存儲空間并返回其首地址。同樣(char*)malloc(20)表示分配連續(xù)20 個
字節(jié)的字符存儲空間并返回首地址(有關(guān)該函數(shù)以后再詳述)。由動態(tài)內(nèi)存分配函數(shù)
malloc()分配了內(nèi)存空間后, 這部分內(nèi)存將專供指針變量使用。
如果要使i指向三個整型數(shù), 則用下述方法。
例如:
#include
main()
{
int *a;
a=(int*)malloc(3*sizeof(int));
*a=1234;
*(a+1)=4567;
*(a+2)=234;
.
.
.
}
*i=1234表示把1234存放到i指向的地址中去, 但對于*(i+1)=4567, 如果認(rèn)為
將4567存放到i指向的下一個字節(jié)中就錯了。Turbo C2.0中只要說明i為整型指針,
則 (i+1) 等價于 i+1*sizeof(int)
同樣 (i+2) 等價于 i+2*sizeof(int)

