在C中创建字符串数组[关闭]

问题描述 投票:1回答:1

我遇到此问题,我在这里使用命令行界面。我试图将输入存储在字符串数组中。但是当我运行我的代码时我遇到细分错误?

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

int main(int num, char **str) {

    int i;

    char owner[20];
    char *keys[5];

    int j = 0;


    for (i = 1; i < num; i++) {

        if (i == 1) {

            strcpy(owner, str[i]);
            printf("%s", owner);
        }
        else {

            keys[i] = malloc(10 * sizeof(char));
            strcpy(keys[j], str[i]);

            printf("%s", keys[j]);

            j++;

        }
    }   
}
c arrays command-line-arguments c-strings
1个回答
0
投票

在else语句中,您应该写

    else {

        keys[j] = malloc( strlen( str[i] ) + 1 );
        strcpy(keys[j], str[i]);

        printf("%s", keys[j]);

        j++;
    }

此外,您还应提供足够的数组所有者以存储字符串str [1]。

© www.soinside.com 2019 - 2024. All rights reserved.