• 关于

    memcpy

    的搜索结果

问题

socket 编程中,memcpy()的问题。

望大神指教。定义了个结构体: struct USERDATA { char name[30]; char passwd[30]; } memcpy(userdata.name,"kakarot",sizeof("ka...
a123456678 2019-12-01 19:23:25 880 浏览量 回答数 1

问题

为何两个变量无法同时声明时赋给内存地址

我有以下代码,在XCode中编译通过,在运行时发生错误, #include <stdio.h> #include <string.h> #include <stdlib.h> int main () {...
a123456678 2019-12-01 19:46:18 757 浏览量 回答数 1

问题

memcpy函数相关问题

面试回来google了下才发现memcpy这题原来这么受面试官青睐!作为找工作的大四狗,我感觉自己水到家了。今天去面试某公司,我投递的岗位的C/C++,面试官去吃饭了,让面Java的人来面试我,然后让我实现memcpy函数,并且写下了原形:...
a123456678 2019-12-01 19:51:03 930 浏览量 回答数 1

问题

关于memcpy(void *restrict s1,const void *restrict s2,size_t n)的疑惑

关键字restrict导致memcpy中s1和s2内存之间没有交叠,我知道使用了restrict关键字说明该指针是访问该数组的唯一方式,内存区域一旦交叠,肯定会有意想不到的结果出现,但是,在使用memcpy函数时,是如何知道s1和s2之间没...
a123456678 2019-12-01 19:50:55 932 浏览量 回答数 1

问题

请问一个 memcpy 的问题

#include<stdio.h> #include<stdlib.h> ...
a123456678 2019-12-01 19:45:44 836 浏览量 回答数 1

问题

函数中声明static变量能重用数据?

书上说如果向下面的des main函数的const unsigned char *key参数传NULL,就能使用之前计算得到的subkeys数组,具体调用就像下面这个样子:des_encipher(&plaintext[0], &a...
a123456678 2019-12-01 19:46:15 955 浏览量 回答数 1

回答

你使用的CString里存放的事实上是Unicode字符串,如果其中存放是英文字母。由于Unicode一个字符占两位,高字节是0,用memcpy复制到char型字符串就会被当做'0'于是字符串就被截断了,输出的只是第一位。memcpy(a,(const char*)szText);或memcpy(a,szText.GetBuffer());或strncpy(a, szText.GetBuffer(), sizeof(a));总之,要用CString::GetBuffer()取(内部的)字符串(sz)首址才可以。(const char*)szText会自动展开成szText.GetBuffer()调用;BTW,既然用CString类型,则szText命名不妥,不如csText,而不妨将a数组命名为szA这样便可以,你可以试一试
a123456678 2019-12-02 01:57:41 0 浏览量 回答数 0

问题

memcpy函数形参指针类型能不能是char* ?

我们知道memcpy传入的指针类型是void*。但是由于复制的时候要一个个字节去复制,所以我们需要把void转换成char类型来处理。那么问题来了,我可不可以声明函数的时候就写成char*呢?...
a123456678 2019-12-01 20:11:27 1195 浏览量 回答数 1

问题

Java中有等同于memcpy()的东西吗?

我有一个byte [],想将其复制到另一个byte []中。也许我在这里展示了我的简单“ C”背景,但是在Java字节数组中是否有等同于memcpy()的东西? 问题来源...
保持可爱mmm 2020-02-08 19:21:26 37 浏览量 回答数 1

回答

C/C++ 规定可以将任何类型的指针转化为void指针,void指针转换为任何类型的指针,所以我们可以将type 转化为void ,然后将void转化为char进行memcpy。若是入参定义为char,对于编译器不能隐身转化的类型需要在调用的地方进行指针类型强转为char。memcpy要做的是bit-wise的拷贝,所以需要逐位的去拷贝。char类型只占一个byte的空间,所以选择char来实现。参数列表使用void*是为了表达该参数可以是指向任意类型的指针。
a123456678 2019-12-02 02:01:57 0 浏览量 回答数 0

回答

要知道,正确的代码一定不会崩溃,但并不代表错误的代码一定会崩溃。第一个memcpy能运行不代表你的代码是正确的,你定义了两个指针,但这两个指针都没有指向有效的内存,接下来的memcpy向不知道是什么地方写入了一个字符串,运气好会写到已经从OS申请但一时还没有使用的内存,运气不好会写到一个无效的地址空间导致崩溃,运气再差点,会写到一块其它代码正在使用的内存,尽管这次写入可以运行,但其它的代码就被彻底搞乱了。
a123456678 2019-12-02 02:37:23 0 浏览量 回答数 0

回答

char MySocket::MsgToChar(MSGStruct msg){char * c = new char[100];memcpy(c, msg, sizeof(MSGStruct));return c;}MSGStruct MySocket::CharToMsg(char c){MSGStruct * msg = new MSGStruct();memcpy(msg, c, sizeof(MSGStruct));return msg;}send发送的时候把消息结构体转为char *:send(so, this->MsgToChar(msg), 100, 0);接收的时候把char 转为消息结构体:MSGStruct msg = this->CharToMsg(recvBuf);已经测试过,在没把消息结构体send出去之前的转换是没有问题的,send出去,然后recv后的字符串再转MSGStruct*就会读取字符
a123456678 2019-12-02 01:58:47 0 浏览量 回答数 0

回答

C语言中,结构体是一篇连续的内存空间,使用=赋值操作,底层用到的就是memcpy;如果结构体中有指针变量;操作后。两个指针指向的同一块区域,而不会分配新的区域; struct S { int a; char * b; }; int main(){ S s1; s1.b = new char[5]; memcpy(s1.b,"hell",5); S s2; s2 = s1; printf("s1.b:%s ,%d \n s2.b:%s,%d\n" ,s1.b,int(s1.b),s2.b,int(s2.b)); return 0; } output://复制后的地址空间相同 s1.b:hell ,4921176 s2.b:hell,4921176
西秦说云 2019-12-02 02:40:44 0 浏览量 回答数 0

回答

strcat 或者 手动memcpy到新的buffer
游客x4uu57rrcwjuo 2020-03-17 17:00:52 0 浏览量 回答数 0

回答

原因可能因为 const char name[50]="hello,n my name is neo1218n"; 这一句声明的写法不太规范,一般的写法是这样的:const char name[]="hello,n my name is neo1218n";或者:const char *name="hello,n my name is neo1218n";一些题外话:上面声明的name[50]会占用50个字符,而并没有显式告诉编译器给字符串一个结束符(0),所以不同的编译器对这一句的处理可能不太一样。如果非要声明一个占50字符长度的数组,可以用:const char name[50]= {0}; //下面用memcpy,所以确保字符串后有0memcpy(name, "hello,n my name is neo1218n", strlen("hello,n my name is neo1218n");或const char name[50];strcpy(name, "hello,n my name is neo1218n"); //strcpy会添加0
a123456678 2019-12-02 02:40:33 0 浏览量 回答数 0

回答

1.strcpy/stncpy2.memcpy3.strcat/strncat
杨冬芳 2019-12-02 02:23:11 0 浏览量 回答数 0

问题

strcpy函数的实现

已知strcpy函数的原型是: char *strcpy(char *dst, const char *src); 实现strcpy函数解释为什么要返回char * 假如考虑dst和src内存重叠的情况,st...
游客bnlxddh3fwntw 2020-04-23 20:34:10 7 浏览量 回答数 1

回答

`memcpy(&userdata,buffer,strlen(buffer));//strlen改为 sizeof(struct USERDATA)`
a123456678 2019-12-02 02:18:14 0 浏览量 回答数 0

问题

Linux下系统调用execl会等待一段时间才执行指定的可执行程序?

程序编译运行环境:Red Hat Enterprise Linux Server release 6.4 64bits问题描述:fork子进程后,使用execl或者execlp调用可执行程序会出现等待一段时间才进入可执行程序,为什么会出现等...
杨冬芳 2019-12-01 20:23:14 1096 浏览量 回答数 0

问题

Linux下系统调用execl会等待一段时间才执行指定的可执行程序?

程序编译运行环境:Red Hat Enterprise Linux Server release 6.4 64bits问题描述:fork子进程后,使用execl或者execlp调用可执行程序会出现等待一段时间才进入可执行程序,为什么会出现等...
杨冬芳 2019-12-01 20:23:11 975 浏览量 回答数 0

回答

在本机代码中,可以使用单个memcpy/ 来完成,这与n个不同的复制操作memmove相反。性能差异很大。
保持可爱mmm 2020-02-08 19:14:02 0 浏览量 回答数 0

问题

从NSString复制内容到NSMutableString中

怎么把strValue的内容复制到一个mstrValue中?strValue是NSString,mstrValue是NSMutableString。mstrValue的空间已经分配好了。不知道能不能用memcpy和strcpy实现。...
爵霸 2019-12-01 19:31:17 767 浏览量 回答数 1

问题

为什么memcpy(calendar, cal, sizeof(CALENDAR))这里输出是错误的啊,搞不懂了

不知道是什么原因 #include<iostream> using namespace std; typedef struct { int year; int month; int date; ...
a123456678 2019-12-01 19:50:16 806 浏览量 回答数 1

回答

name = obj.name; 并不是字符串拷贝! 可以使用C的函数strcpy,或者用c++的std::string作为字符串类型。 ###### 28行给name分配了一块内存   29行又把name指向了obj.name   导致28行分配的内存泄漏了 解决方法一楼正解  ######memcpy或者strcpy进行字符串拷贝。你用等号的话28行的变量和obj里面的name指向的是同一块内存,当然会出问题了。######典型的没搞清楚指针,C++建议用 new delete###### 引用来自“您的好友”的评论 28行给name分配了一块内存   29行又把name指向了obj.name   导致28行分配的内存泄漏了 解决方法一楼正解  谢谢,已经懂了,非常感谢###### 引用来自“MAJIK”的评论memcpy或者strcpy进行字符串拷贝。你用等号的话28行的变量和obj里面的name指向的是同一块内存,当然会出问题了。 谢谢,已经懂了,非常感谢
爱吃鱼的程序员 2020-06-03 16:41:07 0 浏览量 回答数 0

问题

MFC 中 CString转换成char[]数组

环境为vs2010CString szText;char a[1024];edit1.GetWindowText(szText);//获取edit1编辑框的文本怎么将CString类 szText 转换为char[]数组的内容?memcpy...
a123456678 2019-12-01 20:06:56 1821 浏览量 回答数 1

问题

Linux 内核页表拷贝和存储的问题

Linux 内核页表的内容是被所有进程共享的:那为什么不同进程的内核页表还要单独分配存储空间?要用深拷贝(memcpy master page table 的内容)而不用浅拷贝(所有进程共享同一份内核页表)的方式?这样做是出于什么原因考虑?...
a123456678 2019-12-01 20:07:56 958 浏览量 回答数 1

问题

c处理字符串,输出时尾部总带随机乱码:报错

我的开发环境是virtualbox下的lubuntu,编辑器是vscode。 看我用vscode就知道我是个写c#的,对c不太懂,最近用c写一个使用libcpap来抓取http包的小软件࿰...
kun坤 2020-06-09 13:41:19 0 浏览量 回答数 1

问题

C语言,a=malloc,b=a,c=a,free(b),free(c)出错

#include int _tmain(int argc, _TCHAR* argv[]) { char a=(char)malloc(4); memcpy(a,"123",3); char *b=a; char *c=a; if(b) {...
a123456678 2019-12-01 20:06:21 1168 浏览量 回答数 2

问题

C/C++如何发送包含包体长度和结构体的socket包

c/c++在发送一个数据包,这个数据包包含4个字节的网络字节序和一个结构体,这样的包体怎么组合发送呢?我了解的如果只是单纯的发一个struct的话只需用memcpy把struct转成字符串然后send就可以了,但是这种综合体也是可以这样么?...
a123456678 2019-12-01 19:49:54 1040 浏览量 回答数 1

问题

iOS NSString与UInt8的转换问题

我在iOS里面通过这个NSString转buff_nameNSString *room_name=@"我是谁我是谁";UInt8 buff_name[1024];memcpy(buff_name, [room_name UTF8String...
a123456678 2019-12-01 19:21:49 1545 浏览量 回答数 1

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务