我不斷收到此錯誤試圖運行調試:KERN_INVALID_ADDRESS有我難倒
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000000
0x00007fff8c2414f0 in strlen()
這裏是我的代碼:
#include <stdio.h>
#include <cs50.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char s2[25];
strcpy(s2, argv[1]);
int keyLen = strlen(s2);
printf("Please enter a string of text to be encrypted!\n");
string p = GetString();
for (int i = 0, n = strlen(p); i < n; i++)
{
if (isupper(p[i])){
int sum = (p[i] - 'A') + (s2[i % keyLen] - 'A');
char c = 'A' + sum%26;
printf("%c", c);
}
}
printf("\n");
printf("%d\n", keyLen);
}
我可以沒有錯誤編譯代碼和它的作品喜歡它應該。我正在運行調試器,進入for
循環,查看數學運算是如何更好地理解它的。
看起來像一個空指針? – mfrankli
什麼是'GetString'? 'string'? – nneonneo
是否至少有一個參數被提供給程序,它不超過24個字符? – hmjd