C 3D字符数组函数返回字符数组
上面的代码在Xcode中返回错误EXC_BAD_ADDRESS code=1,ADDRESS=0x70。是什么导致了这个问题?C 3D字符数组函数返回字符数组,c,arrays,xcode,char,C,Arrays,Xcode,Char,上面的代码在Xcode中返回错误EXC_BAD_ADDRESS code=1,ADDRESS=0x70。是什么导致了这个问题? 我能做些什么来解决这个问题 如果只想打印字符,请在printf中使用%c而不是%s: char getStr(int x) { const char *arr[10] = {"test", "temp"}; return *arr[x]; } int main() { printf("%s", getStr(0)); return 0;
我能做些什么来解决这个问题 如果只想打印字符,请在printf中使用%c而不是%s:
char getStr(int x) {
const char *arr[10] = {"test", "temp"};
return *arr[x];
}
int main() {
printf("%s", getStr(0));
return 0;
}
此外,如果要返回两个字符串中的一个,则应执行以下操作:
printf("%c", getStr(0));
最后,如果要返回数组的第x个字符:
#include <stdio.h>
char* getStr(int x) {
char* arr[2] = {"test", "temp"};
return arr[x];
}
int main() {
printf("%s", getStr(1));
return 0;
}
printfs%s需要一个char*,您提供了一个char…您想要获取什么字符或字符串?它既不是三维字符数组,也不是二维字符数组。printf%s,getStr3;,怎么样;?非常感谢!所以,在我开始编写工作代码之前,我犯了什么错误,导致了什么?
#include <stdio.h>
#include <string.h>
#define ARRAY_SIZE 2
char getStr(int x) {
char* arr[ARRAY_SIZE] = {"test", "temp"};
size_t s = strlen(arr[0]);
int i = 0;
while ((size_t)x > s) {
i++;
if (i > ARRAY_SIZE) return 0;
x -= s;
s = strlen(arr[i]);
}
return arr[i][x];
}
int main() {
printf("%c", getStr(7));
return 0;
}