gpt4 book ai didi

c - 如何传递一个指针数组,并让函数找到数组的大小?

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:07 24 4
gpt4 key购买 nike

<分区>

我试图将一个指针数组传递给一个函数,而不需要定义大小。此外,输出是一个警告“初始化从整数生成指针而不进行强制转换。最感兴趣的是传递指针数组而不是数组,因为我试图了解当 Data 是使用 malloc 动态分配的内存时如何处理实例

为什么会发生这种情况,如何在不需要定义其大小的情况下将指针数组作为参数传递?

Code:

#include <stdio.h>

void printData(int *data[]);


void main (int argc,char *argv[]){

int *Data[] = {4, 8, 15, 16, 23, 42};
printData(Data);

}

void printData(int *data[]){

int **cur_data = data;
int counter = sizeof(data)/sizeof(int);
for(int i = 0; i<counter; i++){
printf("%d. %d\n", i, *cur_data);
cur_data++;
}
}

Warning:

main.c: In function ‘main’:
main.c:9: warning: initialization makes pointer from integer without a cast
main.c:9: warning: initialization makes pointer from integer without a cast
main.c:9: warning: initialization makes pointer from integer without a cast
main.c:9: warning: initialization makes pointer from integer without a cast
main.c:9: warning: initialization makes pointer from integer without a cast
main.c:9: warning: initialization makes pointer from integer without a cast
gcc main.o -o run

Run: 
0. 4

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com