小编ryy*_*yst的帖子

将fscanf与动态分配的缓冲区配合使用

我得到以下代码:

char buffer[2047];
int charsRead;

do {
    if(fscanf(file, "%2047[^\n]%n%*c", buffer, &charsRead) == 1) {
        // Do something
    }
} while (charsRead == 2047);
Run Code Online (Sandbox Code Playgroud)

我想将此代码转换为使用动态分配的变量,以便在调用此代码时,我不会遇到大量内存泄漏.因此,我试过这个:

char *buffer = malloc(sizeof(char) * 2047);
int *charsRead = malloc(sizeof(int));

do {
    if(fscanf(file, "%2047[^\n]%n%*c", *buffer, charsRead) == 1) {
        // Do something
    }
} while (*charsRead == 2047);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.我总是得到"EXC_BAD_ACCESS"错误,就在使用fscanf调用的if语句之前.我究竟做错了什么?

谢谢你的帮助!

- Ry

c malloc scanf dynamic

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

Java - 无法扩展类?

我正在尝试java.awt.image.BufferedImage使用此代码进行扩展:

import java.awt.image.BufferedImage;

public class FSImage extends BufferedImage {

    public FSImage() {
        // empty constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我收到一些错误:

no suitable constructor found for BufferedImage()
constructor java.awt.image.BufferedImage.BufferedImage(java.awt.image.ColorModel, java.awt.image.WritableRaster, boolean, java.util.Hashtable<?,?>) is not applicable (actual and formal argument lists differ in length)
...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

java bufferedimage

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

CSS - 防止图像放大?

在我的 CSS 中,我目前正在使用这个:

img.info {
    max-width: 620px;
    max-height: 800px;
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我的图像小于max-width和时max-height,它会被放大。我认为标准行为是不会发生缩放,但显然情况并非如此。有什么办法可以防止图像放大吗?

编辑:我找到了问题的根源,它位于我的程序的完全不同的部分。我上面发布的代码工作得很好。抱歉这个不必要的帖子!

css

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

动态数组代码不断崩溃

这是一个非常简单的C程序,我无法弄清楚它崩溃的原因:

int main () {

    size_t argc = 2;
    char **argv = malloc(argc * sizeof(char *));
    for (int i = 0; i < 20; i++) {
        if (i >= argc) {
            argc *= 2;
            argv = realloc(argv, argc);
        }
        argv[i] = strdup("hello world!");
    }

    for (int i = 0; i < 20; i++) {
        printf("argv[%d] = \"%s\"\n", i, argv[i]); // it crashes on this line
        free(argv[i]);
    }

    free(argv);
}
Run Code Online (Sandbox Code Playgroud)

c

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

标签 统计

c ×2

bufferedimage ×1

css ×1

dynamic ×1

java ×1

malloc ×1

scanf ×1