在C中,无符号和有符号字符指针之间的转换何时变得不安全?

如果我在clang和Visual Studio中都这样做: unsigned char *a = 0; char * b = 0; char x = ‘3’; a = & x; b = (unsigned char*) a; 我收到警告,我正在尝试在有符号和无符号字符指针之间进行转换,但代码确实有效。 虽然编译器说这是有原因的。 你能指出一个可能变成问题的情况吗?

int数组的未知大小

我有一个包含int数组的struct 。 我不想修复数组的大小,因为我不知道有多少元素会进入它并且不想浪费内存。 一个int指针数组本质上是相同的。 我尝试了一个指向整数数组的指针和一个无效的双指针。 我怎么能做到这一点? 注意: 我的意思是int指针数组是如果我设置一个固定大小的int指针数组,那么我仍然在浪费空间,所以在这个意义上它与int的固定大小数组没有区别。 唯一的区别是int和int pointer大小可能不同。

C中整数行的结尾

我必须从C语言的文本文件中读取一个未定义的矩阵,我想逐行读取它,这样每一行都是一个整数数组。但我怎么知道一行的结尾,因为我可以不要使用“\ n”作为字符吗? 这是代码: #include “stdafx.h” #include “stdlib.h” #include “stdio.h” using namespace System; typedef struct { int *v; int n; }vector; int main(array ^args) { vector *a; FILE* f; int n = 15; int i = 0; int j,k; if ((f = fopen(“C:\\Users\\Mirelaa\\Documents\\visual studio 2013\\Projects\\MatriceNedefinita\\MatriceNedefinita\\Debug\\fisier2.in”, “rt”)) == NULL) { printf(“Fisierul nu poate fi deschis!”); exit(1); }; […]

当int指针被类型化为char时会发生什么?

int main(){ int a; char *x; x = (char *) &a; a=512; x[0]=1; x[1]=2; printf(“%d\n”,a); return 0; } 这段代码的输出是513.你能解释一下吗?

将字符串(单词)拆分为C中的字母

我需要一个字符串来分割成它的字母并将它保存在一个数组中。我不知道如何做到这一点。它可能在C ++中,但在C语言中似乎没有办法做到。 或者,如果有一种方法来获取输入字符串(一个单词)并将其保存为数组中的单独字母将是理想的。我已使用下面提到的代码来获取输入 #include #include #include #include int(){ char inputnumber; printf( “Enter the number” ); // the word is like –> hellooo scanf(“%s”, &inputnumber); int i=0; printf(inputnumber[i]); } 更新:这个问题已经解决了,我没有在这里声明一个指向char的指针,那是缺少的部分,然后我们可以逐个读取这个单词,谢谢所有

go中无法读取utmpx文件

package main import ( “os” “fmt” ) func main() { fd, err := os.Open(“/var/run/utmpx”) fmt.Println(fd, err) var data []byte len, err := fd.Read(data) fmt.Println(len, err) } &{0xc42000a240}无 0零 没有错误,也没有数据。 从系统头文件中读取此路径/var/run/utmpx 。 如何获得这条道路是另一个问题 系统:macOS el capiton,go版本go1.8 darwin / amd64 **我的最终目标是将此文件读入go struct。**此文件包含系统用户信息。 我能这样做吗? 我会继续努力……

检查字符串是否包含C 中的子字符串

我想知道是否有办法在char*数组中查找substring 。 我似乎无法从Java与C相当的Contains() 例如: char *buff = “this is a test string. The string contains random text.”; 假设我输入substring以与buff进行比较,并查看在buff找到substring次数。 我能够找到第一次出现,但有多次出现的问题。 有人可以帮我吗?

指针作为参数为null但是在函数指针不为null之后

你好,我有我的function: void enterString(char *string) { string = (char*)malloc(15); printf(“Enter string: “); scanf(“%s”,string); //don’t care about length of string now } int main() { char *my_string = NULL; enterString(my_string); printf(“My string: %s\n”,my_string); /* it’s null but i want it to show string i typed from enterString */ return 0; } 我想从主要的字符串函数show中串起来…我不知道你是否理解我。 谢谢 :)

代码审查:在非空终止的char str上查找标记反向搜索

src是一个非空终止的char字符串,其长度为data_len 。 我想从这个数组的结尾开始,找到第一次出现的html 标签。 find_pos应该用src保存标记的位置 以下代码对您来说是否正确? char *strrcasestr_len(const char *hay, size_t haylen, const char *ndl,size_t ndllen) { char *ret = NULL; int i; for (i = haylen – ndllen; i >= 0; i–) { if (!strncasecmp(&hay[i], ndl, ndllen)) { break; } } if (i == -1) return ret; else return (char *)&hay[i]; }

C中的凯撒密码适用于较低的上部

密码适用于较低部分但不适用于上部分。 例如,如果我给一个3键,然后输入I like pie!! 要加密,我得到O olnh slh!! 我也尝试了HELLO并获得了NKRRU 。 isupper部分也返回标点而不仅仅是字母。 我还没弄清楚为什么原始消息被改变以匹配密码消息。 #include #include #include #include #include int main (int argc, string argv[]) { /* Get key from user at command line Get plaintext from user Use key to encipher text: c[i] = (p[i] + k)%26 Print ciphered message */ string message, cipher; int key; // […]