作者:
cord (海派甜心)
2014-05-17 01:13:22開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
dev-c
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
c語言
問題(Question):
*[36m程式碼(Code):(請善用置底文網頁, 記得排版) *[m
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int main(int argc, char *argv[]) {
int len = 0;
int * pArr = (int*)malloc(sizeof(int)*len);
pArr[0] = 987;
pArr[1] = 100;
pArr[2] = 200;
pArr[3] = 300;
pArr[4] = 400;
printf("%d %d %d %d %d",pArr[0],pArr[1],pArr[2],pArr[3],pArr[4]);
return 0;
}
預期的正確結果(Expected Output):
執行正確 但為什麼len設為零
還是可以印出來 不會出錯
執行結果
987 100 200 300 400
作者: tomnelson 2014-05-17 14:51:00
不強制轉型compile時會有warning吧!? 但你pArr都宣告成pointer to int,電腦當然也用pointer to int的結構去操作pArr,會出什麼錯誤?