前言
写这篇文章,是因为同学在leetcode上遇到了这样一个错误:
- 题目:Two Sum
- 代码如下:
int* twoSum(int* nums, int numsSize, int target)
{
int i,j;
int res[2]; /* 加上static之后正常运行 */
for (i=0; i<numsSize; i++) {
for (j=i; j<numsSize; j++) {
if (nums[i]+nums[j]==target) {
res[0]=i;
res[1]=j;
break;
} else {
continue;
}
}
}
return res;
}
- 运行时出现错误:
load of null pointer of type 'const int'
- Google之后发现,在声明res[2]的时候加上static就可以正常运行。于是在《The C Programming Language》(P70,4.6 静态变量)找到了相关内容: