调用printf%s时出现分段错误

薄包

我的C语言代码中只有一小部分。

read(fd,&bufferSize,sizeof(bufferSize);
buffer = malloc(bufferSize);
read(fd,&buffer,bufferSize);
printf("%d",buffer);
fflush(stdout);
printf("%s",buffer);
fflush(stdout);

当我使用%d格式打印缓冲区时,它可以工作,但是当我尝试将缓冲区视为字符串时,出现分段错误。即使使用strcmp或其他类似功能,也会发生SIGSEGV

Qwerty饼干
read(fd,&buffer,bufferSize);

此处buffer是缓冲区开始的地址。因此,当您调用上述函数时,您将传入address的地址

因此,您可以看到为什么会出现段错误,因为传入的地址不是缓冲区的实际地址。将该行替换为

read(fd,buffer,bufferSize);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

调用free()时出现分段错误

调用 strcpy 函数时出现分段错误

调用MPF函数时出现分段错误

从指针调用方法时出现分段错误

为什么从类调用 printf 时会出现分段错误?

从Eigen调用Lapack函数时出现分段错误

为什么在调用getc时出现分段错误?

从Python调用cpp函数时出现分段错误

nasm汇编中的调用函数时出现分段错误

使用Ruby FFI调用Rust库时出现分段错误

调用0x16时出现分段错误

在ruby上调用c函数时出现分段错误

调用`gdk_rgba_to_string()时出现分段错误

调用gsl_integration时出现分段错误

C ++中调用fortran子例程时出现分段错误

当调用argr等于或大于5的mosrcat()时出现分段错误

取消引用调用函数中的指针时出现分段错误

打印时出现分段错误

在 nasm 64bit 中使用 printf 时出现分段错误

执行SYSTEM调用后出现分段错误

从C程序调用x86汇编函数时出现分段错误

LWJGL 代码中第一次调用 gl* 时出现分段错误

调用用 C 编写的 Postgres 函数时出现分段错误,使 Postgres 服务器崩溃

使用Python C API两次调用C函数时出现分段错误

当直接从共享库调用CUDA内核时,为什么会出现分段错误?

在C ++ 11中调用Lambda从高阶函数返回时出现分段错误

在调用lapacke hesv例程后释放MKL指针时出现分段错误

通过 cgo 调用 fts_open 时出现分段违规错误

第二次调用函数时出现分段错误?