- 博客(11)
- 收藏
- 关注
原创 Windows环境下VSCode+CMake搭建Qt开发环境
选择你QT的安装路径(如图所示为我安装QT的路径),就开始构建项目并运行,生成了一个。最后,执行VSCode主界面。在VSCode主界面按住。
2024-12-02 18:57:50
756
原创 将cha*类型字符串作为thread的参数如何保证安全
不可以,因为将 char* 转换为 string 类型时,发生了隐式类型转换,此时会自动调用 string(char *) 的构造函数生成一个 string 类型的临时对象。虽然解决了这个问题,但是 func 函数的形参 str 引用的并不是隐式类型转换下生成的临时对象,而是 main 线程将这个临时对象复制到子线程中(调用拷贝构造函数)的新对象。依然不安全,前面提到,发生隐式类型转换时,会自动调用 string(char*) 构造函数,但是调用时机是发生在 main 线程中还是发生在子线程中的呢?
2024-08-28 17:45:16
430
原创 gcc编译器报错:/usr/bin/ld: main.o: relocation R_X86_64_32 against `.rodata.str1.1‘ can not be used when m
今天编译源文件为main.c和str.c时的一个程序时,gcc编译器报了如下错误:$ makecc -c -o main.o main.ccc -c -o str.o str.cgcc main.o str.o -o main/usr/bin/ld: main.o: relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a PIE object; recompile with -fPIE
2022-04-28 18:00:20
2370
原创 const关键字的实验
今天做了一个实现,想看看const变量的值能不能被修改:程序代码:#include <iostream>int main(){ int arr[10]; int b = 10; arr[10] = 20; std::cout << "b = " << b << std::endl; return 0;}然而编译正确,运行时程序崩溃,这是编译和运行结果:➜ A
2022-04-25 15:31:56
1317
原创 char类型越界导致的错误
今天写程序时遇到了有关char和unsighed char的诡异问题,实质是没有检查char类型的越界。#include <stdio.h>#include <stdlib.h>#include <string.h>#define BUFSIZE 1024#define THRNUM 25int main(void){ char **arr; char buf[BUFSIZE] = {"abcdefghijklmnopqrstuvwxyz\n"};
2022-03-07 11:08:40
960
原创 进程环境-
文件系统的第三部分进程环境讲单进程,因为每一个进程我们要搞清楚它里面到底是怎么样组成的,有什么状态,和系统的变量和资源相关的一些内容,为后面的多进程并发做铺垫1. main函数int main(int argc,char * argv[])历史早期的main函数有第三个变量:环境变量,但现在已经成为一个分支了int main(int argc,char * argv[],char * envp[])2. 进程的终止(正常,异常)正常终止:从main函数返回:return 0调用
2022-01-13 10:28:40
311
原创 以库的方式实现的双向循环链表
以库的方式实现的双向循环链表main.c#include <stdio.h>#include "list.h"//==================================================================================#define NAMESIZE 32//用户自定义的数据结构typedef struct score_st{ int id; char name[NAMESIZE]; int math; i
2021-10-10 20:17:20
122
原创 单链表合并
题目:设ha和hb分别是两个带附加头结点的非递减有序单链表的头指针。将两个表合并成一个非递增有序单链表。结果不能占用除两个链表外多余的存储空间。我的思路:先合并成非递减有序,然后再翻转链表,不知道有没有比这更好的办法,先写在这代码:main.c#include"list.h"int main(void){ node * ha = list_init(); node * hb = list_init(); int arr1[]= {1,3,4,4,9,10};
2021-10-10 16:48:23
406
原创 Unix文件系统
参考书籍:Unix环境高级编程,深入理解计算机系统文件系统:一. 目录和文件获取文件属性类ls的实现 如mylsls -i文件访问权限umask文件权限的更改/管理粘住位文件系统:FAT,UFS —涉及到深入理解计算机系统硬链接, 符号链接(不要说软链接)更改时间的操作utime目录的创建和销毁切换/更改当前工作路径分析目录/读取目录内容二. 系统数据文件和信息三.进程环境...
2021-07-18 21:01:36
218
原创 字符串常量和字符串变量
字符串常量和字符串变量所引发的错误我以前一直认为char *和char []是一样的,但其实他们不一样.看下面一段代码:#include<stdio.h>int main(void){ char * ptr = "abc"; ptr[0] = 'x'; printf("%s\n",ptr); return 0;}另一段代码:#include<stdio.h>int main(void){ char ptr[] = "abc
2021-06-07 15:12:10
664
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人