【发布时间】:2011-10-18 21:30:57
【问题描述】:
我想创建一个整数指针 p,为一个 10 元素的数组分配内存,然后用值 5 填充每个元素。这是我的代码:
//Allocate memory for a 10-element integer array.
int array[10];
int *p = (int *)malloc( sizeof(array) );
//Fill each element with the value of 5.
int i = 0;
printf("Size of array: %d\n", sizeof(array));
while (i < sizeof(array)){
*p = 5;
printf("Current value of array: %p\n", *p);
*p += sizeof(int);
i += sizeof(int);
}
我在这段代码周围添加了一些打印语句,但我不确定它是否真的用值 5 填充每个元素。
那么,我的代码工作正常吗?感谢您的宝贵时间。
【问题讨论】:
-
你试过运行它吗?因为它……不。它甚至不会按照你说的去做。
-
是的,它会运行,并打印出 '5' 10 次。
-
我建议你买一本很好的 C 初学者书。stackoverflow.com/questions/562303/…
-
很好的 sizeof(array) 问题。
-
我正在阅读的书不在该列表中,而且由于我的书所说的与答案所说的相矛盾,我会说我的书被省略是有充分理由的来自good C 初学者书籍列表。