C strcpy() 在函数内部但不在 main() 上时中断

标签 c arrays string strcpy

我想初始化一个字符串数组,每个位置都具有相同的值。所以我正在尝试这段代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define TAM_VETOR 1009
#define QTD_PLACAS 1000

void inicializaVet(char * v[], int tamVet) {
    int i;
    for (i = 0; i < tamVet; i++) {
        printf("rodou %d\n", i);
        strcpy(v[i], "vazio");
    }
}

int main(void) {
    char vetor[TAM_VETOR][8];

    inicializaVet(vetor,TAM_VETOR);    

    return 0;
}

它不起作用,甚至无法复制到第一个位置。 (打印“rodou 0”然后中断)

geraArquivo() 正在运行。

我尝试将相同的代码放在主函数下并且它有效,我想我的错误在于“initializaVet”的参数类型?但我自己无法弄清楚。

最佳答案

gcc -W -Wall 提供警告:

tmp-test.c:7:27: note: expected ‘char **’ but argument is of type ‘char (*)[8]’

您可以将数组传递为

void inicializaVet(char  v[TAM_VETOR][8], int tamVet) 

或作为

void inicializaVet(char  v[][8], int tamVet) 

关于C strcpy() 在函数内部但不在 main() 上时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53094439/

相关文章:

python - 为什么 PyTypeObject 有这么多特定的成员来实现特定的功能

c - 在c中不使用Strcmp比较两个字符串的简单方法

c - librtmp 免费 () : invalid pointer

java - 从java字符串替换脚本标签

Java String.split 具有不同的字符格式

c++ - 如何在 C 或 C++ 中从命令行读取多行输入?

c++ - 我应该使用哪个数组/列表?

C - 使用指针的数组总和

javascript - 一种扁平化对象的优雅方式

python - 在python中排序项目