我已经在我的程序中声明了一个char
数组来保存12个字符。我通过该程序访问这些值。但每次我尝试运行该文件时,它都不会给我一个错误,但会在char数组中显示警告,并且.exe将停止执行。我的程序看起来像这样:为什么我的char数组不工作?
int main(){
char *data[] = {"A,H,H,A"};
char* ahd_database[12] = {'A', 'H', 'D', 'A', 'H', 'D', 'A', 'H', 'D', 'A', 'H', 'D'};
printf("The first letter in index is %c", index[0]);
但是这不能执行。它给出的警告是:
Multiple markers at this line
- initialization makes pointer from integer without a cast [enabled by
default]
- (near initialization for 'ahd_database[7]') [enabled by default]
- (near initialization for 'ahd_database[6]') [enabled by default]
- (near initialization for 'ahd_database[5]') [enabled by default]
- (near initialization for 'ahd_database[4]') [enabled by default]
- (near initialization for 'ahd_database[3]') [enabled by default]
- (near initialization for 'ahd_database[2]') [enabled by default]
- (near initialization for 'ahd_database[1]') [enabled by default]
- (near initialization for 'ahd_database[0]') [enabled by default]
- (near initialization for 'ahd_database[11]') [enabled by default]
- (near initialization for 'ahd_database[10]') [enabled by default]
- (near initialization for 'ahd_database[9]') [enabled by default]
- (near initialization for 'ahd_database[8]') [enabled by default]
有人请指出我的错误吗?
什么是'ahd_database'? –
在你的代码中,'data'被声明为“_an无限数组的字符串(char *)_”,并且仅用* 1 *字符串进行初始化,而'ahd_database'被声明为“_an数组包含12个字符串(char * )_“,但它实际上是用12个字符初始化的,这会触发警告。这是否正是你想要的? – 2015-07-28 08:03:07