gpt4 book ai didi

c - 为什么在函数调用中找不到指针数组的大小?

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

<分区>

为什么这个功能有效

#include <stdio.h>
#include <string.h>

void print_array(char **array, size_t size)
{
for (int i = 0; i < size; i++) {
printf("%s\n",array[i]);
}
}

int main()
{

char *base_data[] = {
"sample 1",
"sample 2",
"sample 3"
};


print_array(base_data,sizeof(base_data)/sizeof(char*));

return 0;
}

但是这段代码没有

#include <stdio.h>
#include <string.h>

void print_array(char **array)
{
for (int i = 0; i < sizeof(array)/sizeof(char*); i++) {
printf("%s\n",array[i]);
}
}

int main()
{

char *base_data[] = {
"sample 1",
"sample 2",
"sample 3"
};


print_array(base_data);

return 0;
}

程序在打印第一个值后崩溃。无论我尝试什么,我都无法在函数调用中找到指向字符串的指针数组的大小。大多数 stackoverflow 示例还将数组的大小传递给函数。将字符串指针数组传递给函数时会发生什么情况?

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