小编0an*_*ana的帖子

为什么这段代码行为不一致?

我正在尝试实现CS107 - Programming Paradigms(斯坦福大学的在线课程)中讲座5和6中所示的通用堆栈.下面的代码,代表演讲中提供的一个示例,编译,但似乎并不表现一致,因为我经常得到一个断言失败.

我注意到了Geany和gcc($ gcc --version gcc (Debian 6.3.0-18) 6.3.0 20170516)中的行为,但没有注意到` https://www.tutorialspoint.com/compile_c_online.php '所以我想知道它是由gcc中的某些东西引起的还是我看起来不是什么bug现在看.

码:

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

typedef struct {
    void *elems;
    int elemSize;
    int logLen;
    int allocLen;

} stack;

void StackNew(stack *s, int elemSize);
void StackDispose(stack *s);
void StackPush(stack *s, void *elemAddr);
void StackPop(stack *s, void * elemAddr);

void StackNew(stack *s, int elemSize)
{
        assert(s->elemSize > 0);
        s->elemSize = elemSize;
        s->logLen = 0;
        s->allocLen = 4;
        s->elems = malloc(4 * elemSize);
        assert(s->elems != NULL); …
Run Code Online (Sandbox Code Playgroud)

c gcc assert

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

标签 统计

assert ×1

c ×1

gcc ×1