在C#中产生分段故障的典型方式是什么?
我对围绕的最短,最整洁的C#代码感兴趣,这些c#代码将可靠地产生一个segfault-理想情况下,无需直接调用任何未托管的代码. 解决方案 您所追求的目前还不清楚,但我想这与到目前为止的任何答案一样好,这是您所能获得的. System.Runtime.InteropServices.Marshal.ReadInt32(IntPtr.Zero); 其他解决方案 迈克尔的回答对我不起作用,也许现在被捕了. Marshal.ReadInt32()只给了我一个" Systemerror:尝试读取或写下受保护的内存". Windows上的.NET 4.5用于各种传递值.但是,我在Windows和Mono 4.0.4.1: 上使用了以下内容. using System.Runtime.InteropServices; [UnmanagedFunctionPointer(CallingConvention.Cdecl)] public delegat
0 2024-04-19
编程技术问答社区
C语言中的另一个coredump问题
当我用 编译代码时 g++ -g -o prueba prueba.cpp -lstdc++ -O3 -march=corei7 -mtune=corei7 -std=c++0x 与g++ -g prueba.cpp调试后,我得到了这些: prueba.cpp:24:6: error: ‘stoi’ is not a member of ‘std’ tm = std::stoi(string2); ^ prueba.cpp:34:7: error: ‘stoi’ is not a member of ‘std’ ler = std::stoi(string1); ^ prueba.cpp:77:8: error: ‘stoi’ is not a member of ‘std’ C[i]=std::stoi(string); ^ 我声明stoi为std::stoi是基于这个示例. 损坏的块为: /////////////////
0 2024-04-10
编程技术问答社区
返回结构成员的起始字节的结构指针
结构指针返回结构成员的开始字节 我想知道它是如何工作的.请有人帮助我知道这一点. #include typedef struct node { char mem; double mem2; char mem3; int mem4; char mem5; char mem6; }NODE; int main() { NODE * m; printf("%u",&m->mem3); return 0; } 输出为16 解决方案 该程序实际上应该崩溃,因为指针M没有指向有效的内存位置.以下代码可以给出结果. NODE M; NODE *ptr = &m; Printf(“%x”, &ptr->mem3); %x将具有十六进制地址值.
4 2024-04-10
编程技术问答社区
在C语言中找不到错误----'分段故障'。
我写了此功能,但无法遇到给我"细分故障"味精的问题. 谢谢您的任何帮助! /*This function extract all header files in a *.c1 file*/ void includes_extractor(FILE *c1_fp, char *c1_file_name ,int c1_file_str_len ) { int i=0; FILE *c2_fp , *header_fp; char ch, *c2_file_name,header_name[80]; /* we can assume line length 80 chars MAX*/ char inc_name[]="include"; char inc_chk[INCLUDE_LEN+1]; /*INCLUDE_LEN is defined | +1 for null*/ /* making the c2 file nam
4 2024-04-10
编程技术问答社区
为一个任务创建自己的malloc。得到一个分段故障
分割故障在评论中发生.我认为这与我没有初始化头部和尾部节点的事实有关.我也试图将其初始化为null,但这不起作用.不幸的是,我真的不知道如何在不使用Malloc的情况下初始化它们.任何帮助都会很棒.谢谢. #include #include #include //the structure of the node in the linked list typedef struct Node{ int size; int status; struct Node* next; struct Node* previous; }Node; int* HEAP_START = 0; int* HEAP_END = 0; Node* head; Node* tail; int first = 0; //printf("here1\n"); void *my_bestfit_malloc(in
0 2024-04-10
编程技术问答社区
程序收到信号SIGSEGV,分段故障,关联列表程序
#include #include typedef struct node{ int value; struct node* next; }Node; Node* createNode(int data); Node* insertFront(Node* first, Node* newNode); void printList(Node* first); void deleteList(Node* first); int main(int argc, const char **argv) { int numItems, ch; FILE *fp; fp = fopen(argv[1], "r"); while ((ch = getc(fp)) != EOF) { if (ch = '\n') numItems++; } fclose(fp);
0 2024-04-10
编程技术问答社区
分段故障和链接列表的未知问题
所以我正在尝试编程机械程序. 该程序很长,但以下是引起我问题的功能:recherche_noe和creation_noe.无需打扰其余的. 它是在法语中,所以要忍受我,但这个想法是:首先,在main中,我向用户询问lst_noe中的noe的数量(这是noe的列表).使用creation_noe,他在向用户索取结构的信息时做出了这一点.最后,recherche_noe返回我正在寻找的noe.所有信息都存储在struct maillage中,您内部有其他结构.谢谢您的帮助. #include #include #include /*==============================================*/ /* Déclaration des structures */ /*==============================================*/ s
0 2024-04-10
编程技术问答社区
在C语言中向文件写入char数组时出现分段故障
当我运行以下代码时,我会在fprintf(outfile, "%s", inputline[j]);>. 我无法理解错误的原因.我对C是相对较新的,有人可以帮我解决错误吗? void test(char *inputline) { FILE *outfile = fopen("results.txt", "w"); if (!outfile) { perror("Error while opening file: "); } else { for (int j = 0; j
0 2024-04-10
编程技术问答社区
将C语言字符串解析为指针数组时出现分段故障
函数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
2 2024-04-10
编程技术问答社区
修复分段故障:11
我目前正在尝试将整数字符串(例如" 509"为type Char)转换为C中的INT.但是,一旦添加了代码的部分,以查看该值是否应该为负,我会得到分段错误.我尝试进行一些研究,发现它是因为使用了错误或访问我没有许可的内存.但是我似乎无法弄清楚我要去哪里.这是我的第一个C课,所以我是新手,任何帮助都将不胜感激. 谢谢! #include #include int toInteger(char *string){ int length = strlen(string); int value = 0; if(strcmp(string[0], "-") == 0){ for(int i = 1; i 9){ print
0 2024-04-10
编程技术问答社区
如何提高阵列的极限?
// C Program to find average of numbers given by user #include #include #include void main() { double sum = 0; int ii = 0,c; char buf[256], *token; printf("Enter the numbers to average on a single line, separated by space and press enter when done\n"); fgets(buf, 255, stdin); token = strtok(buf, " "); while (token != NULL) { sum += atof(token); ii++; token = s
2 2024-04-10
编程技术问答社区
使用F2py进行分割的故障
这是我在这里问的一个问题的后续. 我如何将输入阵列分配给f2py? > 我已经回答评论了这个问题.最初的问题不清楚,太长了.请参阅下面的评论1. 我正在尝试使用F2PY来包装各种fortran子例程/函数来读取用Fortran 77编写的各种原子物理代码输出的数据.我使用的是Anaconda Python分布(Python 3.4 64 bit)在Ubuntu 14.04(python 3.4 64位)( 64位)带GNU编译器套件(GCC,GFORTRAN等) 我有问题试图在Python中进行预言.我最初的问题涉及分配角色阵列.原来我的形状错误.我已经解决了这个问题(我认为),现在正在处理细分错误.我已经使用--debug-capi标志将fortran子例程与f2py编辑,以启用详细的错误报告. 这是我运行Python脚本时获得的终端输出的相关部分. debug-capi:Python C/API function adf04_2py.xxdata_04(
0 2024-04-10
编程技术问答社区
C 语言中的双空闲或损坏(fasttop)错误/分段故障
我正在尝试动态分配一个数组以从命令行读取用户输入.它可以工作99/100次,但是如果我反复键入一堆字符,有时我会遇到分段故障错误或双重损坏或损坏(fasttop)错误.这个错误相对难以复制. 我很确定,由于我将数组重新分配的方式而发生错误. while(1){ char *buf_in; // Holds user keyboard input int cnt = 0, length = 0; // cnt stores current read buffer size, length allows input into buf_in char ch; int buf_max = 64; // Current buffer size. Dynamically allocated buf_in = malloc(buf_max * sizeof
0 2024-04-10
编程技术问答社区
当改变巨大的页面分配大小时,由于initialize()函数引起的分段故障
当我播放我想用大型页面分配的内存大小时,我的程序中会遇到分割故障,即当我定义长度= 4*1024时,有seg故障.当我定义4*1024*1024时,没有SEG故障.这是什么根本原因? 代码下面: #define _POSIX_C_SOURCE 199309 #define _GNU_SOURCE #include #include #include #include #include #include #include #include #include #define PROTECTION (PROT_READ | PROT_WRITE) #define LENGTH (4*1024) //#define LENGTH (4*1024*1024) #define LINE_SIZE 6
0 2024-04-10
编程技术问答社区
C语言中的二维数组指针访问分段故障
我正在尝试为C中的Conway生活游戏编写代码.我在包含宇宙的2D数组中有一些问题.我将向您展示代码的一部分,这会导致我问题.实际上有两个我无法处理的问题. #include #include #include "file2ppm.h" typedef enum { false, true } bool; void *allocateMemoryFor2DArray(int x, int y); //allocate memory for 2D array void initializeUniverseFromFile(char* path, int x, int y, int array[x][y]); //set values of cells from a file void initializeUniverseRandomly(int x, int
2 2024-04-10
编程技术问答社区
在 C-Segfault 中嵌入 Python
从阅读另一个 post ,我试图将一些python代码纳入c: main.c #include int callModuleFunc(int array[], size_t size) { PyObject *mymodule = PyImport_ImportModule("py_function"); PyObject *myfunc = PyObject_GetAttrString(mymodule, "printlist"); PyObject *mylist = PyList_New(size); for (size_t i = 0; i != size; ++i) { PyList_SET_ITEM(mylist, i, PyInt_FromLong(array[i])); } PyObject *arglist = Py_BuildValue("(o)", mylist);
0 2024-04-10
编程技术问答社区
Linux-内存映射的文件
我正在尝试用MMAP实现凯撒密码.我认为密码效果很好,但是问题是MMAP.如果发生更改,则是更新文件. 到目前为止,它无法正常工作.我可以读取内存映射的文件并打印它.但是,如果我进行任何修改,我会得到一个细分错误.不幸的是,我自己无法解决问题.因此,如果您能帮助我,我会很感激. 这是代码. int main (int argc, char *argv[]) { if(argc != 5) fprintf(stdeer, "usage: ./cipher (encrypt|decrypt) (casar| vigenere) \n"); // (encrypt / decrypt) can be found in argv[1] // filename in argv[2] // encryption method in argv[3] // key in argv[4] int
0 2024-04-10
编程技术问答社区
使用TQLI算法的特征值计算因分割故障而失败
我正在尝试使用我从南加州大学CACS网站获得的TQLI算法来计算特征值.我的测试脚本看起来像这样: #include int main() { int i; i = rand(); printf("My random number: %d\n", i); float d[4] = { {1, 2, 3, 4} }; float e[4] = { {0, 0, 0, 0} }; float z[4][4] = { {1.0, 0.0, 0.0, 0.0} , {0.0, 1.0, 0.0, 0.0} , {0.0, 0.0, 1.0, 0.0}, {0.0, 0.0, 0.0, 1.0} }; double *zptr; zptr = &
0 2024-04-10
编程技术问答社区