小编Ang*_*gus的帖子

start.exe中0x61e1f5cf(msvcr90d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000

包括"stdafx.h"

#include<stdio.h>
#include<string.h>
#define MAX_ET_TABLES 10

typedef struct{
    unsigned char  ucVersion;
    unsigned char enMonitor;
    unsigned short uPid;
}SData_t;
typedef struct{
    unsigned char ucVersion;
    unsigned short uID;
    unsigned int uiCollected;
    SData_t st[MAX_ET_TABLES];
}STData_t; 

typedef struct{
   STData_t stData;   
}psTask;

psTask *pstTask;

int main()
{
    printf("\npstTask->stData = %u\n",&pstTask->stData);
    memset(&(pstTask->stData), 0xFF, sizeof(pstTask->stData)); 
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我需要将结构变量的值设置为0xFF.

上面的程序在start.exe中抛出一个未处理的异常为"0x61e1f5cf(msvcr90d.dll)的未处理异常:0xC0000005:访问冲突写入位置0x00000000." 请帮助我理解它为什么.

      page    ,132
        title   memset - set sections of memory all to one byte
;***
;memset.asm - set a section of memory to all one byte
; …
Run Code Online (Sandbox Code Playgroud)

c

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

C中的printf不占用内存?

是否printf占用堆栈中的内存?

printf("Hello world");
Run Code Online (Sandbox Code Playgroud)

是否"Hello world"具有恒定的地址?

请帮我理解.

编辑:

我们传递的参数printf是否存储在本地指针变量中.如果我使用一个数组存储50个字符串文字,它需要堆栈内存,但如果我使用printf它不占用内存 - 就是我所听到的.但我不知道如何printf不将内存作为我们声明的数组.

请帮我理解!

c

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

如何计算c中的整数幂

可能重复:
在32位系统上存储2个以上的电源31

如何计算2到2010年的功率.数字的数量将超过32位,超过要存储的整数大小.不使用数组如何存储它.请帮我解释一下这个.

c mathematical-optimization

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

获取无效的初始化错误

为什么我为以下代码收到"无效的初始化程序错误"?

#include<stdio.h> 
#include<malloc.h>

int main(){
    int i = 2;
    int j;
    for(j = i ; j < 20; j++){
        char *p[5] = malloc(20 * sizeof(char));
        int len = 0;
        p[0] = 'a';
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c

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

为什么没有无符号最小值?

1]数据类型限制:

#include<stdio.h>
#include<limits.h>
int main(){
        printf("\n INT_MAX : %d %x \n",INT_MAX,INT_MAX);
        printf("\n INT_MIN : %d %x \n",INT_MIN,INT_MIN);
        printf("\n SHRT_MAX : %d %x \n",SHRT_MAX,SHRT_MAX);
        printf("\n SHRT_MIN : %d %x \n",SHRT_MIN,SHRT_MIN);
        printf("\n LONG_MAX : %ld %lx \n",LONG_MAX,LONG_MAX);
        printf("\n LONG_MIN : %ld %lx \n",LONG_MIN,LONG_MIN);
        printf("\n USHRT_MAX : %u %x \n",USHRT_MAX,USHRT_MAX);
        printf("\n UINT_MAX : %u %x \n",UINT_MAX,UINT_MAX);
        printf("\n ULONG_MAX : %lu %lx \n",ULONG_MAX,ULONG_MAX);
        return 0;
}

o/p :
-----
 INT_MAX : 2147483647 7fffffff 
 INT_MIN : -2147483648 80000000 
 SHRT_MAX : 32767 7fff 
 SHRT_MIN : -32768 …
Run Code Online (Sandbox Code Playgroud)

c

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

stdin,0,STDIN 是不同的东西

stdin 是一个指针吗,正如我在 fgets() 中看到的那样。

我使用“0”作为标准输入的读取或写入错误,并在 fgets 期间出现段错误。

STDIN宏和0是一样的吗?

stdin 是文件指针吗?请解释一下这一点

c unix

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

错误:预期标识符或'(''''''令牌之前

AC

#include<stdio.h>
#include "a.h"

int main(){
        s.a = 10;
        printf("\n add : %d \n",add(2,2));
        printf("\n sub : %d \n",sub(2,2));
        printf("\n struct is : %d \n",s.a);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

bc:

#include<stdio.h>
int add(int a,int b){
        return (a+b);
}
int sub(int a,int b){
        return (a-b);
}
Run Code Online (Sandbox Code Playgroud)

啊:

#ifndef A_HEADER
#define A_HEADER

typedef struct _s{
        int a;
        int b;
}s;

int add(int a,int b);
int sub(int a,int b);

#endif
Run Code Online (Sandbox Code Playgroud)

O/P:

[root@s new]# ls
a.c  a.h  b.c  include 

[root@s new]# gcc -c a.c -o …
Run Code Online (Sandbox Code Playgroud)

c

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

错误:在'*'标记之前预期')'

#include<stdio.h>
struct s_{
        int b;
}s;

int func1(s** ss){
        *ss->a = 10;
}
int func(s* t){
        func1(&t);
}
int main(){
        s a;
        func(&a);
        printf("\n a : %d \n",a.b);
        return 0;
}
Run Code Online (Sandbox Code Playgroud)

尝试示例程序并使用o/p获取错误.

O/P:

[root@rss]# gcc d.c
d.c:6: error: expected ‘)’ before ‘*’ token
d.c:9: error: expected ‘)’ before ‘*’ token
d.c: In function ‘main’:
d.c:13: error: expected ‘;’ before ‘a’
d.c:14: error: ‘a’ undeclared (first use in this function)
d.c:14: error: (Each undeclared identifier is reported only once
d.c:14: error: …
Run Code Online (Sandbox Code Playgroud)

c

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

printf()在c打印0中用于额外的格式说明符

#include<stdio.h>

int main()
{
    int a,*b,**c,***d,****e;
    a=10;
    b=&a;
    c=&b;
    d=&c;
    e=&d;
    printf("\na=%d b=%u c=%u d=%u e=%u",a,b,c,d,e);
    printf("\n%d %d %d %d %d",a,a+*b,**c+***d+****e);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我无法编辑这篇文章......所有这样做的选项对我的浏览器都不可见.我想问为什么编译器没有警告我,并且为了额外的格式说明符给出输出为0 0.

c

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

标签 统计

c ×9

mathematical-optimization ×1

unix ×1