我不明白为什么我能这样做:
#include "stdio.h"
#include "string.h"
char a[1][100];
void main(void) {
strcpy(a[0], "test1");
strcpy(a[1], "test2");
strcpy(a[6], "test3");
printf("%s", a[0]);
printf("%s", a[1]);
printf("%s", a[6]);
}
Run Code Online (Sandbox Code Playgroud)
将返回:
test1test2test3
Run Code Online (Sandbox Code Playgroud)
在我的理解中,当我这样做时,char a[1][100]我正在创建一个带有2个元素的二维数组,a[0]并且a[1]每个数组都指向一个包含100个字符的数组.为什么我可以分配任何东西a[6]?那不应该是出界的吗?记忆力在哪里?
谢谢你清理它.
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |