【发布时间】:2017-10-29 14:17:20
【问题描述】:
我最近在一次编码比赛中遇到了这个 sn-p。无法弄清楚这是如何工作的。第二行创建一个指向 single long long int 的指针。
我们如何在
for循环中使用下标?即使有可能,它不会在第二次迭代时引发分段错误吗?
int Q = 3;
long long *queryArray = (long long*)malloc(sizeof(long long));
for(i_queryArray = 0; i_queryArray < Q; i_queryArray++){
scanf("%lld", &queryArray[i_queryArray]);
}
如何解释这个sn-p?
【问题讨论】:
-
内存永远不会被访问
-
代码访问越界。那是未定义的行为。任何事情都可能发生,包括它似乎有效。
-
这里有什么问题?投反对票!
-
1.如果我们避免未定义的行为,我们就做不到。 2. 可能。没有任何保证。
标签: c pointers memory-management