小编Mic*_*ing的帖子

正确使用libdl和动态链接库

我需要动态链接我创建的库.我不确定问题是什么.这一切编译正确,但我总是赶上handleNULL指针:

void *handle;
char *error;
handle = dlopen ("./hw11-lib-michaelSchilling.so", RTLD_LAZY);
//same error comes up with full path as well as './hw11...'
if(!handle){
    error = dlerror();
    printf("%s\n", error);
    printf("Error loading library.\n");
    exit(1);
}
Run Code Online (Sandbox Code Playgroud)

我无法通过这个错误,我不确定什么可能是错的.我很确定我已经正确编译了所有内容.以下是我使用的编译步骤:

gcc -rdynamic -c hw11-lib-michaelSchilling.c -o hw11-lib-michaelSchilling.so
gcc hw11-michaelSchilling-4.c -ldl -o hw11-michaelSchilling-4
Run Code Online (Sandbox Code Playgroud)

我收到的错误是读取的

只能加载ET_DYN和ET_EXEC.

c dll shared-libraries

10
推荐指数
1
解决办法
1万
查看次数

C中奇怪的段错误

好的,所以我不确定这里发生了什么.我有一个简单的函数,int foo(char *filename)它接受filename并计算文件中的单词.

int foo(char *filename){

  FILE *inFile;
  int wordCount = 0;    

  printf("foo\n"); // test printf() statement (currently prints)

  char word[50];
  inFile = (&filename, "r");

  printf("infile\n");  // test printf() statement (currently prints)

  while (1){
    printf("while");   // test printf() statement (doesn't print)
    fscanf(inFile, "%s", word);
    if (feof(inFile))
        break;
    printf("%d", wordCount); //test printf() statement
    wordCount++;
  }
  fclose(inFile);
  return wordCount;

}
Run Code Online (Sandbox Code Playgroud)

如你所见,我打印"infile",但不是"while".我遇到了分段错误.有谁知道为什么这不起作用另外,我的inFile = (&filename, "r");陈述是否正确?我指点不是那么好.

c segmentation-fault

3
推荐指数
1
解决办法
264
查看次数

类数组中的NullPointer

我有两个java类.Schedule是使用被调用的Jobs数组的主类deadline.我在将数据放入数组时遇到问题.我有一个for循环,从文本文件中读取数据(它工作正常)并插入某些数据deadline.我没有成功创建,deadline因为每当我想开始插入数组时,我得到了一个NullPointerException.(下面的代码...显然不是我实际编码的,但它仍然是相同的情况.)

自从我用Java编写代码已经有一段时间了,所以我可能只是忽略了一些简单的东西,但我不确定它是什么...感谢您提供的任何帮助.

public class Schedule {

    private Job []deadline;
    Schedule (int n){
        Job[] deadline = new Job[n];
    }

    ...
        int n = 7;
        Schedule schedule = new Schedule(n);

        deadline[0] = new Job("A",3,40); // This line won't compile. NullPointerException
}


public class Job {

    private String name;
    private int deadline;
    private int profit;

    Job(String n, int d, int p){
        name = n;
        deadline = d;
        profit = p;
    }

}
Run Code Online (Sandbox Code Playgroud)

java arrays nullpointerexception

1
推荐指数
1
解决办法
79
查看次数