【发布时间】:2021-03-29 02:51:36
【问题描述】:
我在阅读一些源代码时发现了一个基本上允许您将数组用作链表的功能?代码工作如下:
#include <stdio.h>
int
main (void)
{
int *s;
for (int i = 0; i < 10; i++)
{
s[i] = i;
}
for (int i = 0; i < 10; i++)
{
printf ("%d\n", s[i]);
}
return 0;
}
我知道s 在这种情况下指向数组的开头,但从未定义数组的大小。为什么这行得通,它的局限性是什么?内存损坏等
【问题讨论】:
-
这不起作用,这充其量是未定义的行为。它可能会起作用或不起作用,但请不要依赖这种行为。
-
失去互联网连接的瞬间
标签: arrays c pointers memory initialization