小编Waf*_*les的帖子

为什么atoi给我一个分段错误?

我有以下代码:

#include <stdio.h>

int main ( int argc, char *argv[] )
{
    int M, N;

    M = 1;
    N = 1;
    curr = 1;

    if ( argv[1][0] == '-' )
    {
        curr = 2;

        char *a = argv[1][1];
        char *b = argv[1][3];

        M = atoi(a);
        N = atoi(b);
    }

    printf("%d\n%d", M, N);
}
Run Code Online (Sandbox Code Playgroud)

所以,我通过这个程序是这样的:

a.out -1,2
Run Code Online (Sandbox Code Playgroud)

而不是获得预期的输出

1
2

我遇到了分段错误.是什么赋予了?

c atoi segmentation-fault

1
推荐指数
2
解决办法
1万
查看次数

为什么这段代码不能复制两个在C中工作的字符串?

#include <stdlib.h>

main()
{
    char string[23] = "2345,";

    char aString [sizeof string];

    int i = 0;

    while((aString[i] = string[i]) != ',')
        ++i;

    char *ts = aString;

    printf("%s\n", aString);
}
Run Code Online (Sandbox Code Playgroud)

我想将除逗号之外的所有内容从字符串复制到aString.但是,这不起作用 - 我用逗号打印出一个字符串,最后是一些垃圾.谁能告诉我这里我做错了什么?

好的,这很好.但是,编译后我收到此错误:

警告:内置函数'printf'的不兼容隐式声明

据我所知,我对printf没有任何错误.所以有人能告诉我发生了什么吗?

c string

0
推荐指数
1
解决办法
363
查看次数

标签 统计

c ×2

atoi ×1

segmentation-fault ×1

string ×1