【转】Android 使用NDK开发中,遇到memset,memcpy, malloc函数错误
2016-10-25 10:57
756 查看
遇到在使用NDK进行底层开发的时候,会遇到一些奇怪的问题,如下:
错误一:
Invalid arguments ' Candidates are: void * memcpy(void *, const void *, ?) '
错误二:
invalid arguments ' candidates are void * memcpy(void * const void *
在网上搜索了一下,说是因为malloc、memset、memcpy、fread等函数在声明中使用了size_t类型。
size_t类型不能被正常识别而导致错误。
我的解决方法是,避免使用这些方法,使用new、strcpy等来代替。
如:
原来为:
const char* tmp = env->GetStringUTFChars(jstr_mac,
NULL);
size_t len = strlen(tmp) + 1;
char* mac = (char*) malloc(len);
memcpy(mac, tmp, len);
可以改为:
const char* tmp = env->GetStringUTFChars(jstr_mac,
NULL);
int len = strlen(tmp) + 1;
char* mac = new char[len];
strcpy(mac, tmp);
原文:http://blog.sina.com.cn/s/blog_5de73d0b0101d7ki.html#cmt_2113619
错误一:
Invalid arguments ' Candidates are: void * memcpy(void *, const void *, ?) '
错误二:
invalid arguments ' candidates are void * memcpy(void * const void *
在网上搜索了一下,说是因为malloc、memset、memcpy、fread等函数在声明中使用了size_t类型。
size_t类型不能被正常识别而导致错误。
我的解决方法是,避免使用这些方法,使用new、strcpy等来代替。
如:
原来为:
const char* tmp = env->GetStringUTFChars(jstr_mac,
NULL);
size_t len = strlen(tmp) + 1;
char* mac = (char*) malloc(len);
memcpy(mac, tmp, len);
可以改为:
const char* tmp = env->GetStringUTFChars(jstr_mac,
NULL);
int len = strlen(tmp) + 1;
char* mac = new char[len];
strcpy(mac, tmp);
原文:http://blog.sina.com.cn/s/blog_5de73d0b0101d7ki.html#cmt_2113619
相关文章推荐
- Android 使用NDK开发中,遇到memset,memcpy, malloc函数错误
- Android下jni开发之ndk的使用(下载、配置、编译遇到的问题)
- Android开发常见错误(7):使用Android Studio代理遇到的问题
- android开发使用sqllite时遇到的错误
- Android NDK开发(三)——常见错误集锦以及LOG使用,androidndk
- 〖Linux〗Qt5.2.0+gsoap开发Android的NDK程序遇到错误的解决
- Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发布)
- Android的NDK开发(6)——如何定位Android NDK开发中遇到的错误
- Android开发常见错误(5):使用Monkey自动化压力测试过程中遇到的问题
- Android开发常见错误(1):使用AndResGuard后遇到AssetManager#list(String path)返回为空
- Android的NDK开发(6)——如何定位Android NDK开发中遇到的错误
- android开发给eclipse安装ADT插件遇到NDK pluign无法安装的错误
- Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发布)(更新ing)
- [置顶] Cocos2d-x使用过程中遇到的错误(VS下开发,移植到Android发布)(更新ing)
- NDK学习三:[转载] android开发 NDK 编译和使用静态库、动态库 3ff0
- [Android]使用ProGuard遇到“conversion to Dalvik format failed with error 1”错误的解决办法
- 使用R7版NDK搭建Android开发环境
- 使用OSGI内嵌的jetty进行web开发时:遇到no suitable log constructor错误解决办法
- [Android]使用ProGuard遇到“conversion to Dalvik format failed with error 1”错误的解决办法
- 使用maven-pax-plugin做osgi开发时遇到的一个错误