小编Jav*_*ier的帖子

使用strcpy时访问冲突?

我尝试重新发明strcpy C函数,但是当我尝试运行它时,我收到此错误:

Unhandled exception at 0x00411506 in brainf%ck.exe: 0xC0000005: Access violation writing location 0x00415760.
Run Code Online (Sandbox Code Playgroud)

*dest = *src;行发生错误.这是代码:

char* strcpy(char* dest, const char* src) {
    char* dest2 = dest;
    while (*src) {
        *dest = *src;
        src++;
        dest++;
    }
    *dest = '\0';
    return dest2;
}
Run Code Online (Sandbox Code Playgroud)

编辑:哇,那很快.这是调用代码(strcpy在mystring.c中定义):

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

int main() {
    char* s = "hello";
    char* t = "abc";
    printf("%s", strcpy(s, t));
    getchar();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c strcpy

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

SQL存储过程是否安全?

它们不像SQL注入那样容易受到攻击mysql_query("SELECT important_data FROM users WHERE password = $password")吗?

sql stored-procedures sql-injection

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

有许多不同类型的堆栈

我正在制作一个需要使用两个堆栈的C程序.一个人需要持有角色,另一个需要持有双打.我有两个结构,节点和堆栈:

struct node {
    double value;
    struct node *next;
    struct node *prev;
};

struct stack {
    struct node *last;
    struct node *curr;
};
Run Code Online (Sandbox Code Playgroud)

问题是我需要每种类型中的一种.我唯一能想到的是有两个独立的结构(即char_node,double_node,char_stack,double_stack).如果这是C++我会使用模板,但当然我不能在C.

我记得可以用于此的一件事是一个无效指针.那会有用吗,它会实用吗?

c stack containers types

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

C#WinForms:在无限循环内等待按钮按下

我正在使用GUI制作一个简单的Guess-The-Number游戏.我需要等待一个循环,等待用户在文本框中输入一个数字,然后按"确定".如何在循环中等待事件?

注意:我不想要消息框.这是在主窗口中完成的,因此需要等待输入.

编辑:我应该更好地解释自己.我知道GUI中有一个循环.我想要的是方法中的另一个循环.也许有更好的方法来做到这一点.我可以在按钮的事件处理程序中编写代码,现在我考虑一下.虽然我需要全局变量.不管怎样,我会考虑一下,但我希望我的问题现在更清楚了.

编辑2:对不起,我的问题不明确,编辑没有多大帮助.首先,代码太大,无法在此处发布.我可能不得不发布GUI的截图,所以它没什么用处.基本上,我有两个字段,"最大数量"和"允许的猜测数量".用户输入这两个并单击"播放".一个新面板可用,带有一个文本框和一个"猜猜"按钮.用户输入猜测,程序检查是否正确.

第二个无限循环的目的是避免全局变量.看,每当用户点击"播放"时,游戏必须生成一个新的随机数作为正确的猜测.如果一切都在一个方法内完成,没问题.但是如果多次调用"Guess"按钮的事件处理程序,则必须将该数字存储为Form的实例变量.当然,这不是什么大不了的事,但我认为这个数字应该是指导当前游戏的方法的属性,而不是表格的属性.

我还必须跟踪方法之外的剩余猜测数.再说一次,这没什么大不了的.如果可以的话,我只想避免使用全局变量.

我再次抱歉,我的问题不太清楚.我有点累了,我觉得写得太多了.如果仍然不清楚,那就不要打扰了.我会想到一些事情.

c# events infinite-loop

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

C#中的局部变量问题

我有一些需要在for循环中分配的变量.显然,当循环退出时,C#忽略那里发生的任何事情,并且变量返回到其原始状态.具体来说,我需要它们作为List的最后一个和倒数第二个元素.这是代码:

int temp1, temp2;
for (int i = 0; i < toReturn.Count; i++) {
     if (i == toReturn.Count - 2) { // Next-to-last element
         temp1 = toReturn[i];
     } else if (i == toReturn.Count - 1) { // Last element
         temp2 = toReturn[i];
     }
}
// At this point, temp1 and temp2 are treated as uninitialized
Run Code Online (Sandbox Code Playgroud)

注意:没关系坏变量名称,它们实际上是临时变量.任何更复杂的东西都会让事情变得混乱.

现在,有两种方法(我知道)可以解决这个问题:一种是在循环退出后弄清楚如何使变量生效,另一种是在Python中做一些事情,你可以做到temp = my_list[-1]最后一个元素列表 这些可能在C#中有可能吗?

编辑:当我尝试编译时,我得到"使用未分配的局部变量'temp1'"错误.这段代码甚至没有运行,它只是坐在一个永远不会被调用的方法中.如果这有帮助,我试图在另一个循环中使用变量.

c# for-loop list local-variables

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