8得票2回答
析构函数中的 delete 导致崩溃

在下面的程序中,我打算通过strcpy将一个对象的char* line内容复制到另一个对象中。然而当程序结束时,obj2的析构函数正常工作,但obj的析构函数会崩溃。gdb显示两个对象的line地址不同。 class MyClass { public: ...

57得票7回答
C语言有字符串类型吗?

最近我开始学习C语言编程,之前我学过Java和Python。现在,在我的书里我注意到如果要编写一个“Hello World”程序,语法应该是这样的:char message[10] strcpy(message, "Hello, world!") printf("%s\n", message)...

11得票4回答
strcpy_s是如何工作的?

众所周知,strcpy_s是strcpy的安全版本。 但我想知道它是如何工作的... 我们来看几个例子。 strcpy_s的声明: errno_t strcpy_s(_CHAR *_DEST, size_t _SIZE, const _CHAR *_SRC) 例1char dest[5...

22得票7回答
将char*转换为unsigned char*

在C语言中,如何正确地将char*复制到unsigned char*?以下是我的代码:int main(int argc, char **argv) { unsigned char *digest; digest = malloc(20 * sizeof(unsigned c...

65得票6回答
如何正确分配新的字符串值?

我正在尝试理解如何以最干净/最安全的方式解决这个C语言中的琐碎问题。以下是我的示例: #include <stdio.h> int main(int argc, char *argv[]) { typedef struct { char name...

36得票2回答
‘strcpy’和‘strcpy_s’之间的区别是什么?

当我尝试使用strcpy来复制一个字符串时,编译出现了错误。 error C4996 'strcpy': This function or variable may be unsafe. Consider using `strcpy_s` instead. To disable depr...

21得票2回答
strcpy_s在gcc下无法工作

我有一个C++11项目,并添加了一些strcpy_s方法调用。这在Windows上可以运行,但是在使用gcc编译时出现错误,指出未找到strcpy_s符号。 我已经在代码中添加了以下代码行 #define __STDC_WANT_LIB_EXT1__ 1 但无济于事。

58得票7回答
正确的清空C字符串方法

我一直在做一个需要大量操作字符串的C语言项目。通常情况下,我都是使用C++来编程,所以这和只需调用string.empty()的方法有些不同。 我想知道在C语言中如何清空一个字符串,以下代码是否正确? buffer[80] = "Hello World!\n"; // ... str...

10得票4回答
在memmove函数中,"const void*"是什么意思?

memmove/memcpy/strcpy 函数的原型中的第二个参数是类似的:void *memmove(void *dest, const void *src, size_t n); //const void* char *strcpy(char *dest, const char *src...

7得票6回答
Valgrind警告:我应该认真对待吗?

背景: 我有一个小例程,模仿fgets(character, 2, fp)的功能,只不过它从字符串中获取一个字符而不是从流中获取。 newBuff是作为参数传递的动态分配字符串,而character被声明为char character[2]。 例程: character[0] = newB...