- 论坛徽章:
- 0
|
看malloc函数的说明的时候, 其分配的空间的初值未定. 但是我实际在实验的时候却发现其初值仍然为0.
对于下面这段代码, 我运行之后的结果是其count=2. 就是我所赋的那两个值. 不知道在各位的机器上运行的结果是什么? 我试了多次都是同样的结果.
谢谢.
- #include<stdio.h>
- #include<stdlib.h>
- int main()
- {
- char *p;
- int i;
- char c = 0;
- unsigned int size = 1024*1024*1024;
- unsigned int count = 0;
- p = (char*)malloc(size);
- if (p == NULL)
- {
- printf("malloc error\n");
- exit(1);
- }
- p[size-1] = 'a';
- p[size-1024*1024] = 'b';
- for (i = 0; i < size; i++)
- {
- if (p[i] != 0)
- {
- count++;
- printf("p[%d]=%c\n", i, p[i]);
- }
- }
- printf("count=%u\n", count);
- return 0;
- }
复制代码 |
|