问题列表 - 第18453页

如何使用C断言使代码更安全?

阅读misc.与SDL开发相关的教程我发现了两个不同的例子,做了同样的事情,但是以不同的方式.从代码"安全性"和可维护性的角度来看,我想知道你认为哪两个是正确的.

在第一个例子中,程序员根本没有使用断言,但代码看起来还不错(至少在我看来):

int main(){
        SDL_Surface *screen;

        /** Initialize SDL */
        if(SDL_Init(SDL_INIT_VIDEO)!=0){
                fprintf(stderr,"Unable to initialize SDL: %s",SDL_GetError());
        }
        atexit(SDL_Quit);

        /** Sets video mode */
        screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
        if(screen==NULL){
                fprintf(stderr,"Unable to set video mode: %s",SDL_GetError());
        }

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

在第二个例子中,程序员[其他]正在使用不同的方法,例如(代码不完全是复制粘贴):

int main(){
        SDL_Surface* screen;

        /** Initialize SDL */
        assert(SDL_Init(SDL_INIT_VIDEO)==0);
        atexit(SDL_Quit);

        /** Sets video mode */
        screen=SDL_SetVideoMode(640,480,16,SDL_HWSURFACE);
        assert(screen!=NULL);

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

是否可以在if条件(从第一个示例)中"替换"与第二个示例中的断言一样?

什么是正确的策略(如果有的话)?

c assert

4
推荐指数
2
解决办法
7488
查看次数

在couchdb中创建文档ID时的最佳做法是什么?

我们都知道,对于关系数据库,最好使用数字ID作为主键.

在couchdb中,生成的默认ID是UUID.最好是坚持使用默认值,还是使用用户在应用程序中使用的易于识别的标识符?

例如,如果您在couchdb中设计stackoverflow.com数据库,您是否会使用问题slug(例如,what-is-best-practice-when-creating-document-ids-in-couchdb)或每个文档的UUID ?

database-design couchdb

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

fork的共享内存

我想在两个进程之间创建一个共享内存.我用了fork().一个孩子试图改变这个共享记忆,母亲创造另一个孩子,所以新孩子试图改变相同的记忆.这是我在C编程中的代码.(Ubuntu的)

mylist ch=NUL; 
f=fork();
if(!f){
        pba=shmget(KEYSHM,sizeof(char),0); /*created shared memory*/
        ch=(mylist *) shmat(pba,0,0);
        ch->name=ugur;
        ch->surname=cedric;
...do something...
}
else{
        if(ch)
        printf("this is top of mylist %s"ch->name);
.......do something
}
Run Code Online (Sandbox Code Playgroud)

它永远不会写ch-> name.为什么?我创建了一个共享内存.为什么父进程无法读取?

c unix memory fork shared

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

什么是回调?

这是一个功能吗?
它是从源头调用的函数吗?
或者,它是从目的地返回的功能吗?
或者,它只是在目的地执行一个功能?
或者,它是从传递给目标的函数返回的值吗?

definition callback

4
推荐指数
2
解决办法
1155
查看次数

我正在使用WPF TextBlock,但是当文本太长时,文本会被切断.是否有AutoScroll功能?

我的TextBlock有50x50像素来显示文本,但是如果有更多文本,我希望用户能够滚动.此控件是否有自动滚动功能?

我应该使用更适合此任务的不同控件吗?

这里有几个图片来说明问题:

这个工作正常,因为文本适合: 替代文字

这个似乎不正确.文字被切断了. 替代文字

c# wpf textblock

5
推荐指数
1
解决办法
3020
查看次数

spring roo vs appfuse生成服务/ dao层

我正在寻找有经验的用户对spring roo和appfuse的反馈.您认为哪种方法可以更好地逆向工程数据库表并生成服务层,dao层和jpa实体?

如果我没有弄错的话,spring roo目前无法对数据库进行逆向工程.

java spring appfuse spring-roo

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

在C中遍历二叉树

我正在尝试遍历C中的二叉树.我的树包含一个AST节点(编译器的抽象语法树节点).ASTnode保留nodetype,它指定给定节点的类型(即INT OP或CHAR和TYPE,我们不需要关注其他类型),其他成员是左右指针,最后我们存储.

这是遍历的代码:

    void traverse(struct ASTNode *root)
    {
        if(root->nodeType == OP){
            printf("OP \n");
            if(root->left != NULL){
              printf("left - ");
              traverse(root->left);
            }
            if(root->right != NULL){
              printf("right - ");
              traverse(root->right);
            }
            return;
        }
        else{
            if(root != NULL && root->nodeType == INT)
            {
              printf("INT - ");
              printf("INT: %d\n",root->value);
            }
            if(root != NULL && root->nodeType == CHAR)
            {
              printf("CHAR - ");
              printf("CHAR: %c\n",root->chValue);
            }
            return;
        }
    }
Run Code Online (Sandbox Code Playgroud)

此外,我们不能将左值或右值分配给CONSTANT节点,因为在AST中,常量值不包含任何额外值.

更新:

问题出在我的主要电话中:

    int main()
    {
        struct ASTNode *node1 = makeCharNode('a');
        struct ASTNode *node2 = makeCharNode('b');
        struct …
Run Code Online (Sandbox Code Playgroud)

c search binary-tree tree-traversal

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

接口问题

我有一个接口(称为IMessage),它有一个方法Check(),一个类实现这个接口

interface IMessage
{
    bool Check();
}

class NewClass : IMessage
{
    #region IMessage Members

    public bool Check()
    {
        //Some logic
    }
}
Run Code Online (Sandbox Code Playgroud)

那一切都很好.问题是我不希望这个方法(Check())是公共的,我想把它保持在asssembly的内部,但如果我把它作为内部,那么编译器说它没有实现接口.它需要公开才能实现接口.我能做什么?

c# interface public internal

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

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

图像未显示https

突然,访问https页面时,我的网站上没有显示我的图像.我的代码没有变化.我的主机确实必须在我的请求之后使用SSL支持重新编译他们的ftp服务(所以我可以ftpes我的网站).不能影响我的SSL证书的任何其他事情.同样的事情发生在FF和IE以及不同的计算机上.

php ssl https image

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