代码之家  ›  专栏  ›  技术社区  ›  T.T.T.

为什么strncpy不能处理分配了malloc的字符串?

  •  1
  • T.T.T.  · 技术社区  · 15 年前
    char* temp;
    
    temp = (char*) malloc (strlen(window->entry.value)+1);
    //strncpy( temp, window->entry.value, sizeof(temp) ); DOESN"T WORK
    memcpy (temp, window->entry.value, strlen(window->entry.value) + 1); //WORKS
    

    谢谢。

    2 回复  |  直到 15 年前
        1
  •  6
  •   Steve Jessop    15 年前

    sizeof(temp) 不是你想的那样。它告诉你一个指向char的指针的大小,以字节为单位 temp 是。很可能在你的系统上是4或8。

    malloc .

    memcpy strncpy 内存 如果通过也不起作用 sizeof(温度) strncpy公司 如果长度合适就行了。

        2
  •  0
  •   Puppy    15 年前