提问人:Nhenon 提问时间:11/2/2022 更新时间:11/2/2022 访问量:152
警告:格式 '%i' 需要类型为“int”的参数,但参数 2 的类型为“int *” [-Wformat=]
warning: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘int *’ [-Wformat=]
问:
我在 Linux 中使用共享内存创建了一个 int 的向量 (vectorR),代码如下:
int shmidR, tamR;
tamR = fil*col2;
int *vectorR[tamR]; // Creating the vector
shmidR = shmget(IPC_PRIVATE, sizeof(int)*fil*col2, IPC_CREAT|0666);
vectorR[tamR] = (int*) shmat(shmidR, NULL, 0);
然后我对这个向量进行操作,最后我想打印内容以查看它是否好:
for (int i = 0; i < tamR; i++)
{
printf("%i", vectorR[i]);
}
但是我在标题中收到警告:警告:格式“%i”需要类型为“int”的参数,但参数 2 的类型为“int *”[-Wformat=]
答:
0赞
Tenobaal
11/2/2022
#1
int *vectorR[tamR]
创建一个 int 指针数组。你想要的是一个整数数组。只需使用 .int vectorR[tamR]
int shmidR, tamR;
tamR = fil*col2;
int vectorR[tamR]; // Creating the vector
shmidR = shmget(IPC_PRIVATE, sizeof(int)*fil*col2, IPC_CREAT|0666);
vectorR[tamR] = (int) shmat(shmidR, NULL, 0);
评论
int *vectorR[tamR];
是一个指针数组。vectorR
vectorR[tamR] = (int*) shmat(shmidR, NULL, 0)
vectorR