我试图在Turbo C中运行此代码并在第9行进行非法初始化我做错了什么? #include #include void main() { int names[] = {23,23,34}; int *nam[] = { names, names+1 , names +2}; char *temp; clrscr(); printf(“%u” , (nam)); getch(); }
函数makearg应该计算char数组中的单词数,并将每个单词分解为指针数组中自己的位置。 分段错误似乎是strncpy函数的问题。 int makearg(char s[], char ***args); int main(){ char **args = (char**)(malloc(100)); char *str = “ls is a -l file”; int argc; argc = makearg(str, &args); printf(“%d”, argc); printf(“%c”, ‘\0’); int i; for(i = 0; i < argc; i++){ puts(args); printf("%c", '\n'); } return 0; } ///////////////////////////////////////// int makearg(char s[], char ***args){ int argc […]
我正在做一些研究以更好地理解C中的指针,但我很难理解这些:’struct * A’是结构上的指针吗? 那么什么是’struct * A’? 而且我看到有人写’int const * a’,这是什么意思?
#include #include #define MAX_ROWS 5 #define MAX_COLS 5 int globalvariable = 100; void CreateMatrix(int ***Matrix) { int **ptr; char *cp; int i = 0; *Matrix = (int**)malloc((sizeof(int*) * MAX_ROWS) + ((MAX_ROWS * MAX_COLS)*sizeof(int))); ptr = *Matrix; cp = (char*)((char*)*Matrix + (sizeof(int*) * MAX_ROWS)); for(i =0; i < MAX_ROWS; i++) { cp = (char*)(cp + ((sizeof(int) […]
我在C中的一个项目中使用Code :: Blocks。 当我编译时,我得到错误:“在第81,85,90,91行上从类型’double’分配类型’double *’时不兼容的类型”。 该项目是采用单位转换工具并包含多个函数,而不是main()下的所有内容。 http://pastebay.net/1181184
这是一个旨在使用ppm图像文件的程序。 我在尝试使用接受全局结构变量并提取该图像成员的函数时遇到编译错误。 这是全局结构(在ppmIO.c和ppmIO.h中声明): ppmIO.c: struct Image *instance; ppmIO.h: struct Image { int width; int height; unsigned char *data; }; extern struct Image *instance; 这就是我从main调用我的函数的方法: ImageInvert(&instance); 这些是我的imageManip.c文件的相关部分: #include #include #include #include #include void ImageInvert(struct Image **toInvert) { int i; int pix = (*toInvert->width) * (*toInvert->height); for (i = 0; i data = ((unsigned char)255 – *(toInvert)->data)); […]
我正在使用PyCuda通过指针将数组对传递给cuda内核。 数组是不同内核的输出,因此数据已经在GPU上。 在内核中,我试图访问每个数组中的元素来进行向量减法。 我为数组中的元素获取的值不正确(h&p在下面的代码中是错误的)。 任何人都可以帮我看看我做错了什么? 我的代码: import pycuda.driver as cuda import pycuda.autoinit from pycuda.compiler import SourceModule import numpy as np import time import cv2 from pycuda.tools import DeviceMemoryPool as DMP from scipy.spatial import distance import os import glob def get_cuda_hist_kernel(): #Make the kernel histogram_kernel = “”” __global__ void kernel_getHist(unsigned int* array,unsigned int size, unsigned int* […]
int main() { int value = 4321; int *ptrVal = &value; printf(“%d %d”,++value,(*(int*)ptrVal)–); return 0; } 在上面的print语句中,预增量/后增量如何工作? 为什么回答4321 4321?
例1: #include #include void saveData(void* data) // only allow to use void* data { // …After some calculation: int inputData[5] = {1,2,3,4,5}; memcpy((int*)data, inputData, sizeof(inputData)); } int main() { int myNum[256]; saveData((void*)myNum); printf(“\n%d%d%d%d%d\n”,myNum[0],myNum[1],myNum[2],myNum[3],myNum[4]); } 我在main中有一个int数组,并将数组传递给函数saveData, 在函数savaData中,我将inputData [5]保存到myNum [256]; 它工作正常。 例2: 如果我有一个struct数组而不是int数组怎么办: #include #include struct Analysis{ int a; int b[10]; }; void saveData(void* data, size_t size) […]
c中是否有任何逻辑可以交换任何类型的两个变量。 即int,float,字符序列。 我可以想到将每种类型的变量存储为characte序列并将其交换为普通字符串的逻辑,但我不是它的好主意。