小编Iha*_*imi的帖子

陷入了分段错误错误

我正在写一个简单的程序c,我遇到了这个错误

分段故障(核心转储)

我知道Segmentation fault由于内存访问冲突而发生错误.但是我无法弄清楚下面简单的程序在哪里发生了坏的内存访问.

#include<stdio.h>
int main()
{
    int a = 0;   
    scanf("%d", a);
    printf("%d\n", a);
    return(0);
}
Run Code Online (Sandbox Code Playgroud)

我在这里在线编译,在代码块中它也给出了同样的错误.

c runtime-error segmentation-fault

0
推荐指数
2
解决办法
90
查看次数

为什么fork系统调用奇怪的行为?

int main(void) {
    printf("abc");
    fork();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

此代码的输出是:

abcabc
Run Code Online (Sandbox Code Playgroud)

为什么打印两次,即使fork系统调用在printf语句之后?

Ideone链接

c operating-system system-calls

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

ng-class不在简单示例中评估表达式

此代码在ng-repeat循环中.表达式不是在浏览器内部进行评估,整个语句也是在浏览器中.

 <i ng-class="'icon-ok' : student.is_passed == 'passed', 'icon-remove': student.is_passed == 'failed'"></i>
Run Code Online (Sandbox Code Playgroud)

angularjs ng-class

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

将double*转换为float*

我想知道如何转换double*float*,并float*double*C或C++?谢谢.我尝试使用(float*)和使用(double*),但它似乎没有我的观察工作.

c c++ pointers

-1
推荐指数
1
解决办法
1166
查看次数

为获取分配空字符串

我想在C中编写一个程序来填充数组p [MAX] [N]的字符串

我用过这个,但我不知道当我输入时哪个是空字符串.

#include <stdio.h>
#include <string.h>
#define R 3
#define C 8

int main()
{
    int i;
    char strings[R][C]; 
    printf("***Table of Strings - Names***\n\n");
    for(i=0;(i<R && gets(strings[i]));i++)
    ;           
    if(i==R)
    printf("\n**Table Full - input terminated \n");
    for(i=0;i<R;i++)
        puts(strings[i]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c string null eof

-1
推荐指数
1
解决办法
760
查看次数

访问数组的NULL字符

考虑一下该计划

#include<stdio.h>

int main()
{
    char a[] = "hello";

    printf("%c", *(a + 5)); 
    printf("%c", *(a + 6)); 
    printf("%c", *(a + 99));

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这里第一个printf是打印NULL还是垃圾值?最后两个printf怎么样?

我很困惑因为我在数组绑定之外访问.

c arrays

-1
推荐指数
1
解决办法
89
查看次数

在C中,在'if'语句中,为什么要反转test和变量的常量,例如if(10 == val){}?

在C语言中,对于if语句,有时我们可以看到测试'值放在要测试的变量之前,这可能带来一些优化(GCC编译器),但是哪一个?(但这会降低我的可读性).

例:

if ( 10 == val) {}
Run Code Online (Sandbox Code Playgroud)

谢谢,

c gcc compiler-optimization

-1
推荐指数
1
解决办法
120
查看次数

在c中如何判断一个char是否是一个数字?

我正在使用atof(word),其中单词是一种char类型。当单词是数字(例如 3 或 2)时它起作用,但 atof 不区分单词是运算符(例如 )"+"。有没有更好的方法来检查字符是否是数字?

我是 CS 的新手,所以我对如何正确执行此操作感到很困惑。

c char atof

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

sizeof(long long)给出8但是数字溢出2**32

long long n, prod, i;
n = 13;
prod = 1;

for (i = 1 ; i <= n ; i++) {
    prod *= i;
}
printf("%d\n", prod);
printf("%d\n", sizeof(long long));
Run Code Online (Sandbox Code Playgroud)

回报

$ 1932053504
$ 8
Run Code Online (Sandbox Code Playgroud)

结果显然是溢出的.但我不明白为什么会发生这种情况long long.sizeof(int)返回4 [字节],但产品是相同的.我究竟做错了什么?

c overflow long-integer

-1
推荐指数
1
解决办法
66
查看次数

行int*(*(x [3])())[5]; 做C?

这是我第一次在Stack Overflow上问一个问题,所以请随意告诉我,如果我做错了什么或不够具体.我现在用C语言编写微控制器大约4个.几天前,我参加了一个电子竞赛.许多问题之一是C代码行究竟是什么

int *(*(x[3])())[5];
Run Code Online (Sandbox Code Playgroud)

确实.这就是我记得的路线.一个支架可能在另一个位置,但我认为这就是这条线.

我的猜测是x是一个功能指针数组,我们采用第四个元素并取消引用它.然后在不移交参数的情况下执行该功能.returnvalue似乎是指向一个数组的指针,我们为了获取第一个元素的地址而将其解引用一次.然后我们选择该数组的第6个元素.我不知道int的用途是什么......

非常感谢你回答我的问题并度过了愉快的一天.

c arrays pointers function-pointers

-1
推荐指数
1
解决办法
114
查看次数